我有一个问题与在Android中显示“完成操作使用”对话框时以编程方式选择应用程序有关。
一个例子如下: 在我的代码中,我有这个陈述
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.youtube.com/watch?v=98yl260nMEA")));
然后我会显示一个包含两个选项的对话框: 使用浏览器或YouTube
完成操作任何想法如何在不显示对话框的情况下选择YouTube?
谢谢!
尼古拉斯
答案 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);
}