我的应用程序的一部分是启动器,用户可以在其中添加(或删除)网格中的应用程序。我用来获取 ActivityInfo 的代码如下:
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setAction(Intent.ACTION_MAIN);
intent.setPackage(packageName);
ResolveInfo rInfo = getPackageManager().resolveActivity(intent, 0);
ActivityInfo aInfo = rInfo.activityInfo;
这允许我提取所有其他活动的 Activity 图标和标签并将它们显示在网格中,但在系统联系人或人员应用程序的情况下,提取的图标是默认系统图标,标签是“Android 系统” .
如何为 People 应用程序提取正确的活动信息?
注意:我提取活动 (resolveActivity()) 而不是应用程序的原因是某些应用程序定义了多个启动器活动,我需要找到所有具有 category=launcher 的活动。