使用自定义URL方案启动另一个应用程序会在启动应用程序的边界内打开应用程序。

问题描述:

我在帖子中看到了How to open an application inside another application within the latters boundaries in android?使用自定义URL方案启动另一个应用程序会在启动应用程序的边界内打开应用程序。

但是,当我尝试使用自定义URL方案打开另一个应用程序时,它发生在我的应用程序中。有谁知道为什么会发生这种情况?

调用其他应用程序的代码如下。

String callBackUrl = “OtherApp://result?params”; // This is supposed to be a callback URL with query parameters 
String redirectUrl = callBackUrl.substring(0, callBackUrl.indexOf("://")); 
Intent redirectIntent = new Intent(); 
redirectIntent.putExtra(Intent.EXTRA_TEXT, callBackUrl); 
redirectIntent.setAction(redirectUrl); 
redirectIntent.setType("text/plain"); 
startActivity(redirectIntent); 

原因是因为我的应用程序是一个单一的任务应用程序。它是我Activity元素的AndroidManifest.xml中的android属性。

 android:launchMode="singleTask" 

我找到的解决方案是添加两个标志到“redirectIntent”。

 redirectIntent.setFlags(Intent.URI_INTENT_SCHEME); 
     redirectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);