【发布时间】:2014-12-19 22:12:28
【问题描述】:
我正在尝试获取已映射的多个应用程序的包名称。我想使用ResolveInfo.activityInfo.packageName 访问它们,但我遇到了问题,尤其是activityInfo,因为Java 不断通知我"static method cannot be referenced from a static context." 我假设我需要创建一个新对象,然后访问每个应用程序的包名称但我只是不知道该怎么做。
这是我要打印此信息的部分代码:
public void printPackageName() {
Iterator<Map.Entry<String, ResolveInfo>> entries = selectedMap.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, ResolveInfo> entry = entries.next();
String pname = ResolveInfo.activityInfo.packageName;
System.out.println("App info: " + pname);
}
}
我看到了一个类似问题的解决方案,用户想要主目录的包名。在他们的情况下,问题已通过以下代码解决。我假设我可能会出于我的目的修改此代码,但我没有使用意图。
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo resolveInfo = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
String currentHomePackage = resolveInfo.activityInfo.packageName;
【问题讨论】: