1

我正在尝试获取我的 android 上已安装浏览器的列表。我找到了一个代码,它为我提供了处理 URL 的活动列表:

PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
                                                 PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : list) {
    String name = info.name;
    String pkgName = info.resolvePackageName;
}

我能够获取活动名称,但包名称始终为空。有没有办法获取包名?还是有更好的方法来做到这一点?

谢谢,

钢筋混凝土

4

2 回答 2

0

尝试这个:

for (ResolveInfo info : list) {
    String name = info.activityInfo.name;
    String pkgName = info.activityInfo.applicationInfo.packageName;
}
于 2013-11-03T10:17:47.407 回答
0

您需要将其与 packageInfo 对象匹配。

List<PackageInfo> temp = packageManager.getInstalledPackages(PackageManager.GET_META_DATA);
for(PackageInfo info: temp) {
  String pkg = info.packageName
}
于 2013-11-03T10:12:47.380 回答