我正在尝试制作一个意图,用我的链接打开 com.mozilla.firefox 并忽略 .ACTION_VIEW
我目前的逻辑是:
Uri uri = formatURL(url); //Turns my string into a URI formatted correctly
final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setPackage("com.mozilla.firefox");
contextActivity.startActivity(intent);
这似乎应该可行,但不会做任何事情(与删除第3行相比,它在我的默认浏览器Chrome中打开)。是否可以针对意图专门针对另一个应用程序?
答案 0 :(得分:0)
尝试使用:
intent.setClassName("packageName", "className");
但是查询可以打开意图并启动它的活动
会更好List<ResolveInfo> activities = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_ALL);
for (ResolveInfo info :
activities) {
if( info.activityInfo.packageName.contains("com.mozilla.firefox")){
//launch firefox:
intent.setClassName(info.activityInfo.packageName,info.activityInfo.name);
startActivity(intent);
}
}
因此,如果未安装Firefox,则可以启动默认意图。