android - 如何获取应用中的主要 Activity 名称?

标签 android android-activity

如何获取系统第三方应用中的主要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/

相关文章:

android - singleTask 的多个 Activity

android - 如何在按钮单击时开始新 Activity

java - java - 如何在不使用Activity类的情况下在java中获取android id?

android - 在android中显示对话框时我们可以与后台 Activity 交互吗

java - 从错误中恢复的最佳策略是什么——忽略发生错误的记录

Android背景图片填满屏幕

Android - 如何监听蓝牙暂停/播放

java - 符号构建期间发生意外异常(rebuildModuleMaps)

java - Android:从 Intent 中获取 App-Name

java - 从内部存储中获取图像时出现 FileNotFoundException