如何获取应用程序中的主要活动名称?

时间:2013-01-31 09:03:51

标签: android android-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);
}

我知道如何获取包名称。但不知道如何获得主要活动的名称。

我使用pi.activities [0] .name。它仍然获得空指针。

任何人的想法都非常感激。

2 个答案:

答案 0 :(得分:2)

使用

pm.getLaunchIntentForPackage(pi.packageName);

这将为您提供启动意图,如果您打印它,您将看到启动器意图以及主要活动。

如果您只想显示可以从设备启动器启动的活动,那么您需要为类别启动器设置过滤器。

答案 1 :(得分:1)

您可以使用以下

final PackageManager pm = getApplicationContext().getPackageManager();
ApplicationInfo ai;
try {
    ai = pm.getApplicationInfo( this.getPackageName(), 0);
 } catch (final NameNotFoundException e) {
 ai = null;
}
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "unknown)");