如何获取系统第三方应用中的主要activity?
PackageManager pm= getPackageManager();
List<PackageInfo> packs = pm.getInstalledPackages(0);
for (PackageInfo pi : packs) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("icon", pi.applicationInfo.loadIcon(pm));
map.put("appName", pi.applicationInfo.loadLabel(pm));
map.put("packageName", pi.packageName);
}
我知道如何获取包名。但不知道如何获取主要 Activity 的名称。
我使用 pi.activities[0].name。它仍然获得空指针。
非常感谢任何人的想法。
最佳答案
使用
pm.getLaunchIntentForPackage(pi.packageName);
这将为您提供启动 Intent ,如果您打印它,您将看到启动器 Intent 以及主要 Activity 。
如果您只想显示可以从您的设备启动器启动的 Activity ,那么您需要为类别启动器设置过滤器。
关于android - 如何获取应用中的主要 Activity 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14621926/