use*_*054 8 android packages package
I have this code to get a list of all apps on system:
PackageManager pm = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN);
List<ResolveInfo> installedApps = pm.queryIntentActivities( mainIntent, 0);
for(ResolveInfo elem : installedApps) {
String PackageName = elem.activityInfo.applicationInfo.packageName;
Log.i("TAG",PackageName);
}
Run Code Online (Sandbox Code Playgroud)
But the result in installedApps shows many repeated PackageNames. Is this possible? It's 'cause a "failure" of the intent or because many apps packageNames have the same name?
Com*_*are 12
这可能吗?
当然.
它导致了意图的"失败"
不,至少不是因为我对"失败"的定义.
或者因为许多应用程序packageNames具有相同的名称?
没有.
这是因为您正在查询活动,而不是应用程序.一个应用程序可以有零个,一个,两个或一百万个活动来响应ACTION_MAIN Intent.
不,每个应用都应该有一个唯一的包名.如果您安装的应用程序的软件包名称已经在另一个已安装的应用程序中使用,那么它将替换它.
所以应该有其他原因.一个猜测是queryIntentActivities检索可以为给定意图执行的所有活动.因此它可以返回具有相同包名称的活动信息.
您可以尝试使用getInstalledApplications方法.它将返回设备上安装的所有应用程序包的List
| 归档时间: |
|
| 查看次数: |
9499 次 |
| 最近记录: |