我实现了过滤器活动以从电子邮件中的 url 打开我的应用程序并将 url 传递给它。它在第一条路径上运行良好:我打开电子邮件,触摸电子邮件中的链接,它询问我要使用哪个应用程序,我选择我的应用程序并且一切正常。
但是,现在当我再次尝试打开 Mail 应用程序时,比如打开其他电子邮件,Mail 应用程序不会让我看到电子邮件,它只是将我直接带到我的应用程序,而没有来自电子邮件的任何数据。我必须强制退出我的应用才能再次打开邮件。
我用我的应用程序尝试了 GMail 应用程序,它没有这样做,它按预期工作,即让我总是看电子邮件。我想知道我是否错过了一些东西,所以 Android Mail 应用程序搞砸了。
谢谢。
这是清单文件中的过滤器:
< 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();
}
}
...
}