如何绕过“使用...完成操作”

时间:2009-12-07 18:36:30

标签: android action android-intent using complete

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

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

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

然后我会显示一个包含两个选项的对话框: 使用浏览器或YouTube

完成操作

任何想法如何在不显示对话框的情况下选择YouTube?

谢谢!

尼古拉斯

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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); 
}