電子メールの URL からアプリを開き、URL を渡すためにフィルター アクティビティを実装しました。最初のトレイルでは問題なく動作します。電子メールを開き、電子メールのリンクをタッチすると、使用するアプリを尋ねられ、アプリを選択すると問題なく動作します。
しかし、メールアプリをもう一度開いてみると、他の電子メールを開くと言うと、メールアプリでは電子メールが表示されず、電子メールからのデータなしで直接アプリに移動します。メールを再び開くには、アプリを強制終了する必要があります。
自分のアプリで GMail アプリを試してみましたが、そうではありません。Androidメールアプリがめちゃくちゃになるので、私が見逃した何かがあるのだろうか。
ありがとう。
マニフェスト ファイルからのフィルターは次のとおりです。
< intent-filter>
< action android:name="android.intent.action.VIEW" />
< category android:name="android.intent.category.DEFAULT" />
< category android:name="android.intent.category.BROWSABLE" />
< data android:scheme="http" android:host="myhost.com"/>
< /intent-filter>
in the app i pull url like this:
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri uri = intent.getData();
if (uri!=null){
String msgFromUrl=intent.getDataString();
try {
msgFromUrl = java.net.URLDecoder.decode(msgFromUrl, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if(msgFromUrl.length()>0){
Toast.makeText(this, msgFromUrl, Toast.LENGTH_LONG).show();
}
}
...
}