android - 获取应用的包名

标签 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 设备上处于 Activity 状态时,如果任何其他应用程序触发任何类型的权限请求,那么我将从权限窗口中检索该应用程序的名称并将其显示在我的 logcat 中。

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

最佳答案

试试这个来获取应用的包名


 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;

}

关于android - 获取应用的包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46582902/

相关文章:

android - 将位图保存到位置

android - 标签 : TextLayoutCache Text: Cache Value deleted

php - 将用户信息获取到登录 Android 上的共享首选项

android - 在android上转换原始位图

java - 如何使用 PackageManager 在 Android 应用程序的 ListView 中获取 PackageName

Android PackageManager只能检测物理设备上的系统应用

android - 使用包名称获取所有 Activity

android - 一个 Service Worker 进程停止另一个 Service Worker 进程,反之亦然

android - 当应用程序处于 "pending publication"阶段并被评论者/测试者(Google Play 商店)使用/评论时,InstallerPackageName 是什么?

Android - 使用 PackageInstaller 和 PackageInstaller.Session 静默安装 APK