2

在 Android 中显示“使用完成操作”对话框时,我有一个与以编程方式选择应用程序相关的问题。

一个例子如下:在我的代码中,我有这个语句:

startActivity(new Intent(Intent.ACTION_VIEW,
                         Uri.parse("http://www.youtube.com/watch?v=98yl260nMEA")));

然后,我将看到一个对话框,其中包含两个选项:使用浏览器或 YouTube 完成操作

知道如何在不显示对话框的情况下选择 YouTube 吗?

4

2 回答 2

0

我认为您将需要有关您要默认启动的应用程序的意图过滤器的更多信息(在本例中为 youtube 应用程序)。该目标应用程序可能有多个意图过滤器,其中一个可能更具体。您可以使用该特定意图调用 startActivity,然后将直接启动预期的应用程序。但是,这需要您对目标应用程序有更多的了解(这在大多数情况下很难,例如 Youtube 应用程序)。

除此之外,我不认为你可以在你的应用程序中做很多事情。Intent 解析是由 Android 框架完成的,因此如果用户应用程序可以以某种方式覆盖它,这将是安全方面的缺陷。

于 2009-12-08T17:22:33.897 回答
0
PackageManager pm = getPackageManager(); 
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(Intent.ACTION_VIEW, Uri.parse(youtube.com/watch?v=Zi_XLOBDo_Y)), 0); 
Iterator<ResolveInfo> actList = activities.iterator(); 
while(actList.hasNext()) { 
   ResolveInfo curr = actList.next(); 
   Log.d("Intents =====> ", curr.toString() + " " + curr.match + " " + curr.isDefault); 
}
于 2009-12-08T20:16:20.323 回答