Androidはワンツーパンチ 三歩進んで二歩下がる

Android卵プログラマーの記録ブログ

emailのリンクからandroidアプリを起動する

自分用のメモです。何か変だったら教えてくれたらすごく嬉しいです。

HTMLリンクからアプリを起動するという参考サイト様に
あるように、ブラウザからアプリを起動するやり方はとてもうまく行くのですが、
メールのリンクから上記と全く同じようにしようとしても、メールクライアント
gmailしか見てないのでgmailの話だと思って下さい。)
ではリンクは「http」「https」で始まらないとリンクとしてみなしてくれません。

そこで、
Launch activity from email link

を参考にして、

のようにインテントフィルタにhttpのschemeを付けて、gmailのリンクから起動するようにしたサンプルを作りました。
ただし、このサンプルだけでは充分ではありません。
メールのリンクをクリックするとインテントでアプリケーションを選択する画面が出ますが、
そこでサンプルを選ばずにブラウザを選んだ場合「ページが見つかりませんでした」の
エラーになってしまいます。
実際の運用では実際に存在するURLをインテントフィルタに設定して、そのURLで
ブラウザを選択された場合でもアプリの起動にリダイレクトするようなスクリプトの記述が
必要となるでしょう。

サンプルの使い方
以下のサンプルをプロジェクトに取り込み(コピペでもなんでも)
実機にインストールして、起動します。
そうするとメール送信内容の画面が開きます.

[:large]

メールアドレスを自分のgmailアドレス宛にして送信ボタンを押して下さい。
メールクライアントからメールを送信して下さい。

一旦アプリを終了します。
実機からgmail クライアントを起動し、先程自分宛に送信したメールが届いているか
確認します。
メールの「http://www.com.sakurafish.myexamplemaillink/something」をクリックすると
インテント一覧の中に「mailからアプリを起動するサンプル」があるのでクリックします。

「起動成功!」と表示されたら成功です。


以下はサンプルです。
AndroidManifest.xmlの「LaunchByMailActivity」アクティビティのインテントフィルタが肝です。
後はおまけみたいなものです。