首先,抱歉我的英语不好。
当APP启动时,我得到了可以打开网络浏览器的APP。
当应用程序第一次执行时,它会要求用户选择是否要通过Chrome或Firefox或任何其他应用程序启动用户。这个APP会记住用户的选择。下次用户来应用时,将打开用户选择的应用程序。
所以这就是问题,这个应用程序无法在Firefox中运行,因此我必须在启动列表中删除Firefox,以防止Firefox在第一次启动时由用户选择。
之前:
=============================
你想用这个应用程序启动?
·铬
·firefox
·浏览器
=============================
后:
=============================
你想用这个应用程序启动?
·铬
·浏览器
=============================
我是否可以在此应用中添加一些源代码来自定义启动列表,而不是更改智能手机中的所有启动设置?因为我不想在同一设备中影响其他APP。而且我也不想在设备中删除Firefox。
如果是这样,有人可以告诉我应该编辑哪种方法吗? 感谢您的帮助。
答案 0 :(得分:0)
所以这是我通过检查这些答案解决问题的方法:
How to exclude a specific application from ACTION_VIEW Intent?
Is it possible to hide some application in Intent AppChooser?
Iterating through a Collection, avoiding ConcurrentModificationException when removing in loop
之前:
private String mUri = "http://www.google.com";
Intent catchIntent = getIntent();
String uri = catchIntent.getStringExtra(Const.INTENT_TRANSITION_URL);
mUri = uri;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mUri));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
infoList = getPackageManager()
.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
后:
private String mUri = "http://www.google.com";
Intent catchIntent = getIntent();
String uri = catchIntent.getStringExtra(Const.INTENT_TRANSITION_URL);
mUri = uri;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mUri));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
infoList = getPackageManager()
.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
String excludeApplicationName = "org.mozilla.firefox";
for(Iterator<ResolveInfo> iterator = infoList.iterator(); iterator.hasNext();){
String string = iterator.next().activityInfo.packageName;
if(string.equals(excludeApplicationName)){
iterator.remove();
}
}
我只是简单地获取可以打开URL的所有应用程序列表,并使用迭代器从列表中删除firefox。 谢谢你的帮助!