2015年4月6日月曜日

【Android】メールアプリを暗黙的インテントで呼び出し、送信後に元のアプリに戻る

ネット上のニュースなどを集めるアプリで、ニュース記事を共有する機能があるとする。
■ツイッターに投稿
■LINEに投稿
■フェイスブックに投稿
■メールで送信

メールで送信させるときは、メールアプリを暗黙的インテントで呼び出していた。
しかし、メール送信後、画面がメールアプリのままなので元のアプリまでユーザーに操作して戻ってもらわねばならなかった。

これを修正。

こうしたい:
■メール編集画面から戻るボタン→元のアプリに戻る。
■メール送信後→元のアプリに戻る。

意外と簡単に出来た。
※String url_for_mailto はmailtoのリンク文字列
この処理は「メール送信ボタン」のオンクリックリスナーなどに書かれる。

----------------------------
修正前
----------------------------
uri = Uri.parse(url_for_mailto);

//インテント作成
Intent intent = new Intent(
  Intent.ACTION_SENDTO, //メールソフト起動
  uri                   //URIインスタンス
);
//メールアプリは新たに立ち上げさせる
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//スタートアクティビティの主語はアクティビティインスタンス
activity.startActivity(intent);



----------------------------
修正前
----------------------------
uri = Uri.parse(url_for_mailto);

//インテント作成
Intent intent = new Intent(
  Intent.ACTION_SENDTO, //メールソフト起動
  uri                   //URIインスタンス
);
//メールアプリは新たに立ち上げさせる
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//スタートアクティビティの主語はアクティビティインスタンス
//インテントの開始をstartActivityForResult メソッドで行えば、メール送信後(または戻るボタンを押した時)このアプリに戻る
activity.startActivityForResult(intent, 1);



つまり、startActivityForResultメソッドを使うということですね。

0 件のコメント:

コメントを投稿