Android - 即使从Intent.createChooser中选择了一个选项"Open with"对话框仍然显示



我有一个Imageview通过点击,我需要打开选择器,这将显示有资格打开url的多个应用程序。我正在做这样的事情:

Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(article.getAndroidUrl()));
                if(Build.VERSION.SDK_INT>21){
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
                } else {
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                }
                            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(Intent.createChooser(intent, "Open Url Using"));

这可以正常工作并打开选择器。但是在所有的应用程序中,如果我选择了设备的"默认浏览器"应用程序,那么它又会要求"打开"对话框。然而,如果我选择其他应用程序,如chrome或firefox,那么它工作得很好,没有第二个打开对话框显示。

所以除了默认的浏览器应用程序,其他浏览器应用程序工作良好。

问题:是否有任何已知的问题,即使在使用Intent.createChooser之后,对于默认浏览器,另一个"打开"对话框将打开,再次询问使用哪个应用程序?如果是,如何摆脱?

注意:这并不是发生在每个设备上。对于某些设备,这工作得很好,但对于其他设备,它要求再次打开对话框,甚至在选择Intent.createChooser选项后。

这里的问题似乎是与特定的浏览器本身,不一定与您的Intent选择器。当被重定向到移动站点时,基本浏览器通常会将其作为新请求处理,并可能显示自己的Intent选择器。

一个解决方法是,如果可能的话,显式传递移动站点URL,这将消除重定向的需要,并直接在所选的浏览器中打开站点。

相关内容

最新更新