使用应用名称获取包名称

Getting the Package name using an App name

我已经环顾四周,我看到的是获取 package names 或获取 App names 并将其存储在数组列表中。

但是如果我有一个 Array list 的应用程序名称并且我想得到它们的包名称对应物怎么办?

我该怎么做?

PackageManager 可用于相同的目的。

PackageManager pm = context.getPackageManager();
List<ApplicationInfo> l = pm.getInstalledApplications(PackageManager.GET_META_DATA);
String canonicalName = “”;
for (ApplicationInfo ai : l){
String n = (String)pm.getApplicationLabel(ai);
if (n.contains(name) || name.contains(n)){
        canonicalName = ai.packageName; // retrieve package name here
    }
}