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