获取应用程序的包名称

时间:2017-10-05 10:01:20

标签: android android-package-managers

所以我正在制作一个我需要一些功能的应用程序。我使用以下代码在我的Android设备上获取所有已安装应用程序的包名称:

final PackageManager manager = getPackageManager();

List<ApplicationInfo> packages = manager.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo info : packages) {
  Log.i("Info", "Installed package:" + info.packageName);
}

接下来,每当我的应用在Android设备上处于活动状态时,如果任何其他应用触发任何类型的权限请求,那么我将从权限窗口中检索该应用的名称并将其显示在我的logcat中。

在这种情况下,我得到应用程序的名称。有什么办法可以获得应用程序的包名吗?

1 个答案:

答案 0 :(得分:0)

尝试此操作以获取应用的包名称

 List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);

ArrayList<AppInfo> res = new ArrayList<AppInfo>();
for(int i=0;i<apps.size();i++) {
                PackageInfo p = apps.get(i);

                AppInfo newInfo = new AppInfo();
                newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
                newInfo.pname = p.packageName;
                newInfo.versionName = p.versionName;
                newInfo.versionCode = p.versionCode;
                newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
                res.add(newInfo);
                }
            }

class AppInfo {
    String appname = "";
    String pname = "";
    String versionName = "";
    int versionCode = 0;
    Drawable icon;

}