您是否看过: PackageManager.resolveActivity(),
Intent intent= new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo defaultLauncher= getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
String nameOfLauncherPkg= defaultLauncher.activityInfo.packageName;
确保您使用 HOME 意图,因为很明显,您将在家中安装启动器。
没用过,但你可以用另一个标志试试,即
PackageManager.GET_INTENT_FILTERS
代替
PackageManager.MATCH_DEFAULT_ONLY
最终解决方案:
API 包管理器,
public abstract int getPreferredActivities (List<IntentFilter> outFilters,List<ComponentName> outActivities, String packageName)