1

我实现了过滤器活动以从电子邮件中的 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();
        }
       }
  ...
}
4

0 回答 0