スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

javamailでメールを送る時のエラー

昔送れていたJAVAMAILが、送れなくなった!
ちなみに、出てくるエラーは「android.os.NetworkOnMainThreadException」。

理由は、送れていた時はAPI8のエミュレータを使っていたが、API15とかのエミュレータを使ったことで送れなくなったらしい。
というのも、android3以降、メインスレッドでJAVAMAILが送れなくなったよう。

参考記事 → ココ

なので、AsyncTaskを使ってそれを回避。
※ もっとシンプルな回避方法は、ココに丁寧に記載されていました。




public void MySendMail(final String mUser, final String pw, final String mTo, final String title, final String sBody){


if( ! mUser.equals("") ){

new AsyncTask<Void, Void, Void>() {
@Override public Void doInBackground(Void... arg) {
try {
Properties props = new Properties();

props.put("mail.smtp.host", "smtp.gmail.com");// SMTPサーバ名
props.put("mail.smtp.port", "587"); // SMTPサーバポート
props.put("mail.smtp.auth", "true");// smtp auth
props.put("mail.smtp.starttls.enable", "true");// STTLS

Session sess = Session.getInstance(props);

MimeMessage mimeMsg = new MimeMessage(sess);

mimeMsg.setFrom(new InternetAddress(mUser));//Fromアドレス
mimeMsg.setRecipient(Message.RecipientType.TO, new InternetAddress(mUser));//送信先アドレス
mimeMsg.setContent("body", "text/plain; utf-8");
mimeMsg.setHeader("Content-Transfer-Encoding", "7bit");
mimeMsg.setSubject(title);//件名
mimeMsg.setText(sBody, "utf-8");//本文

Transport transport = sess.getTransport("smtp");
transport.connect(mUser, pw);
transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());// メール送信
transport.close();

} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute();

}
}

AdStirのアプリごとの登録方法

AdStirに最近登録したのですが、1アプリ1アカウントと思ってしまってました。
でもそんなはずはないと、アプリごとに設定する方法を探していたところ、どうやら以下のようにやるみたい。
現在ヘルプデスクにこれであっているかを伺っている最中ですが、とりあえずメモを残しておきます。

1.AdMobアカウントの登録
 「アカウント管理」画面にて、それぞれのアプリに対応したアカウントを新規作成。

2.メディアの作成
 「メディア&アドネットワーク設定」で、それぞれのアプリに対応した“メディア”を作成。

3.広告配信比率の設定
 「広告配信比率」で、それぞれのアプリごとに配信比率を登録。
 最初に出てきている画面は、アプリA(最初に登録したアプリ)で、まずアプリAの「AdMob」行にある「アカウント設定」をクリックし、上の「1」で作成したアプリA用のアカウントを選択。
 次に、画面の上のほうにある「広告配信比率を設定する広告枠を選択してください」から、アプリBのデフォルト枠を選択し、アプリA同様に「AdMob」行のアカウント設定を行う。

AdStirを組み込んだらエラーに

Android携帯向けアプリに広告を載せようと、AdStirを組み込んだらエラーになってしまいました。
いろいろとググってみたものの、AdStir関連の日本語記事がぜんぜん見つからず、四苦八苦したので、メモで残しています。
ちなみに、AdMobも同様でした。

症状
・マニュアルどおり、以下のレイアウトを組み込んだら、コンパイルは問題なくできるのに、実行時にエラーが出る。

<com.ad_stir.AdstirView
media="*************"
spot="*"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>


原因
このアプリは、もともと古いバージョンのEclipseで作っていました。
Eclipseのバージョンをあげて、その新しいEclipseにインポートして作り続けていたのですが、どうやらそれが問題そうでした。

参考記事→ココ


解決策
少々面倒くさいですが、一旦Eclipseからプロジェクトを削除して、そこに今まで作っていたソースコードなどをコピーしてアプリを作り直すと、無事広告が出るようになりました。


P.S.
 AdStirって、まだまだマイナーなんですかね?


ハッピーメールバナー

AndEngineをライブラリに入れると、ビルド(製品版)できない!

AndEngineを使ったゲームを作って、いざ署名&パッケージングしようとしたら、ビルド時にエラーに!
エラーメッセージ:Conversion to Dalvik format failed with error 1
四苦八苦して、やっとたどり着いた解決策 → ココ を参考にしました。



解決策の手順
  1. AndEngineをライブラリに設定している場合は、外す
  2. プロジェクトのフォルダ:libsに、andengine.jar(AndEngine\binの下にあります)をコピー
  3. ビルドパスにandengine.jarを登録する(プロジェクトを右クリック→Properties→Java Build Pathで、「Add External JARs」をクリックし、andengine.jarを選択)

これで、ビルドが通るはずです。

ボイスランチャー ・・・ アンドロイドアプリ

Google Playへのリンクは、以下の画像をクリックしてください。







たまに使う「乗換案内」や「カメラ」などのアイコンを探すのが面倒くさい、そんなずぼらな私にピッタリのアプリです。

このアプリは、しゃべることで以下のことをしてくれます。
・アプリを起動する
・グーグル検索をする
・マップ表示する
・電話をかける

アプリを起動する
例えば、携帯に向かって「乗換案内」としゃべりかけると、乗換案内が起動するといった具合です。
初めて「乗換案内」としゃべったときは、その単語をどのアプリにひも付けるかを選択します。次からは、サクッと乗換案内が起動します。



ピンクのボタンを押します。


Tips:ひも付けるアプリを探すのが面倒なとき
インストールしているアプリが多いときなど、アプリがいっぱいあって探すのに苦労するときは、まずそのアプリを動かしておけばOKです。動かしておくと、「最近使ったアプリ」のリストの中に出てきます。

Webページを表示
例えば「フェイスブック」としゃべるとブラウザでwww.facebook.comを表示するといったものです。
上の「アプリを起動する」と手順はほぼ同じですが、違う点は、「アドレスを入力する」というところです。
(以下の画像の、「ココ!」のところ)

アドレスを携帯で手打ちするのは面倒ですから、先にそのWebページを表示し、アドレスをコピーしておくことをオススメします。


アドレスをコピーしてからこの画面に来ましょう

電話をかける
アプリを起動するのと同様、初めてのときはどの人にひも付けるかの設定が必要です。
例えば佐藤さんに電話をかけたい場合、「佐藤さんに電話」としゃべってください。初めてしゃべったときは、電話帳に移りますので、佐藤さんを選択してください。
 次からは、その“佐藤さん”にサクッと電話をします。

単語をグーグル検索
これは特に設定は不要です。「焼肉を検索」と言えば、“焼肉”をグーグル検索します。

マップ表示
こちらも特に設定はいりません。「駐車場をマップ表示」と言えば、付近の駐車場をグーグルマップに表示します。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。