【问题标题】:Get the package name of the app获取应用的包名
【发布时间】:2017-10-05 10:01:19
【问题描述】:

所以我正在制作一个需要一些功能的应用。我正在使用以下代码获取我的 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 中。

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

【问题讨论】:

    标签: android android-package-managers


    【解决方案1】:

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


     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;
    
    }
    

    【讨论】:

    • 我需要获取parse返回的字符串的包名(也就是应用名)。如果我尝试使用 abpve 代码,我会得到我自己不需要的应用程序的包名称。我应该改变什么?
    • 你想要什么
    • 在我上面的代码中,Name 函数返回一个字符串。我需要那个包名
    • 你想要已安装应用的package
    • 我想要字符串的包名。例如,如果字符串值为instagram,那么我需要那个包名
    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2017-06-14
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多