xin心 2015-10-27 14:00 采纳率: 100%
浏览 3689

applicationInfo中如何获取应用程序启动Activity的name

private static void getAppInfo(ApplicationInfo applicationInfo) {
String packageName = applicationInfo.packageName;// 包名
String activityName = applicationInfo.name; // 获得该应用程序的启动Activity的name
String appLabel = (String) applicationInfo.loadLabel(pm); // 获得应用程序的Label
Drawable icon = applicationInfo.loadIcon(pm); // 获得应用程序图标
// 为应用程序的启动Activity 准备Intent
Intent launchIntent = new Intent();
launchIntent.setComponent(new ComponentName(packageName,
activityName));
AppInfo appInfo = new AppInfo();
appInfo.setAppLabel(appLabel);
appInfo.setPkgName(packageName);
appInfo.setAppIcon(icon);
appInfo.setIntent(launchIntent);
mlistAppInfo.add(appInfo);
}这样是获取不到的

     Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    // 通过查询,获得所有ResolveInfo对象.
    List<ResolveInfo> resolveInfos = pm
            .queryIntentActivities(mainIntent, PackageManager.MATCH_DEFAULT_ONLY);
    // 调用系统排序 , 根据name排序
    // 该排序很重要,否则只能显示系统应用,而不能列出第三方应用程序
    Collections.sort(resolveInfos, new ResolveInfo.DisplayNameComparator(pm));
    if (mlistAppInfo != null) {
        mlistAppInfo.clear();
        for (ResolveInfo reInfo : resolveInfos) {
            String activityName = reInfo.activityInfo.name; // 获得该应用程序的启动Activity的name
            String pkgName = reInfo.activityInfo.packageName; // 获得应用程序的包名
            String appLabel = (String) reInfo.loadLabel(pm); // 获得应用程序的Label
            Drawable icon = reInfo.loadIcon(pm); // 获得应用程序图标
            // 为应用程序的启动Activity 准备Intent
            Intent launchIntent = new Intent();
            launchIntent.setComponent(new ComponentName(pkgName,
                    activityName));这样就行
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 请提交代码 5月25日

    悬赏问题

    • ¥15 树莓派与pix飞控通信
    • ¥15 自动转发微信群信息到另外一个微信群
    • ¥15 outlook无法配置成功
    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题