如何以编程方式获取在运行Android 7.0的设备中已安装的浏览器应用程序的列表? [英] How to get the list of installed Browser Apps in an Android 7.0 running devices programmatically?
本文介绍了如何以编程方式获取在运行Android 7.0的设备中已安装的浏览器应用程序的列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在Android 7.0之前,我能够检索已安装的浏览器类型应用程序的列表及其包名称.然后,我升级到Android 7.0,只能检索三星的Internet浏览器,而不能检索其他浏览器类型的应用程序,例如Chrome.
Before Android 7.0 I was able to retrieve the list of installed browser type applications and it's package name. Then, I upgrade to Android 7.0 and I am only able to retrieve Samsung's Internet browser, but not the other browser type applications such as Chrome .
设备三星Tab A
这是代码:
public static List<String> getListOfBrowser(Context context) {
List<String> browserPackageName = new ArrayList<String>();
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));
PackageManager pm = context.getPackageManager();
List<ResolveInfo> browserList = pm.queryIntentActivities(intent, 0);
for (ResolveInfo info : browserList) {
browserPackageName.add(info.activityInfo.packageName);
Log.e("BrowserList Info ",info.activityInfo.packageName+" total browser"+browserList.size());
}
} catch (Exception e) {
e.printStackTrace();
Log.e("BrowserList Info ",e.getMessage());
}
return browserPackageName;
}
推荐答案
如果Android API级别> = 23,那么您可以这样做:
If Android API level >= 23, then you can do like so:
List<ResolveInfo> browserList;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.MARSHMALLOW) {
// gets all
browserList = pm.queryIntentActivities(intent, PackageManager.MATCH_ALL);
// only the defaults
browserList = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
} else {
browserList = pm.queryIntentActivities(intent, 0);
}
这篇关于如何以编程方式获取在运行Android 7.0的设备中已安装的浏览器应用程序的列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文