Android 如何获取默认的家庭应用程序?
我想获得默认的家庭应用程序名。为此,我使用了Android 如何获取默认的家庭应用程序?,android,default,android-launcher,Android,Default,Android Launcher,我想获得默认的家庭应用程序名。为此,我使用了 Intent intent = new Intent("android.intent.action.MAIN"); intent.addCategory("android.intent.category.HOME"); intent.addCategory("android.intent.category.DEFAULT"); ResolveInfo resolveinfo =getApplicatio
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.HOME");
intent.addCategory("android.intent.category.DEFAULT");
ResolveInfo resolveinfo =getApplicationContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
defaultHomeName = resolveinfo.activityInfo.name;
这将返回com.android.internal.app.ResolverActivity,当我尝试以下操作时
List<RunningTaskInfo> runningTasks =((ActivityManager) getApplicationContext().getSystemService("activity")).getRunningTasks(1);
if (runningTasks != null && !runningTasks.isEmpty()) {
for (int i = 0; i < runningTasks.size(); i++) {
RunningTaskInfo runningtaskinfo = (RunningTaskInfo) runningTasks.get(i);
}
}
List runningTasks=((ActivityManager)getApplicationContext().getSystemService(“活动”)).getRunningTasks(1);
if(runningTasks!=null&&!runningTasks.isEmpty()){
对于(int i=0;i
当在主屏幕上时,将主页名设置为com.sec.android.app.twlauncher.Launcher
为什么同一个应用程序显示不同的名称?如何为所有设备的默认家庭应用程序获取唯一的名称
为什么同一个应用程序显示不同的名称
因为它们不是同一个应用程序
具体来说,com.android.internal.app.ResolverActivity
是解析器活动,我们通常称之为活动选择器,简称为“选择器”。对于resolveActivity()
来说,这是因为有两个或更多的活动可以处理您选择的意图
如何为所有设备的默认家庭应用程序获取唯一名称
通过在PackageManager
上使用queryIntentActivities()
,而不是resolveActivity()
,您将获得所有已安装主屏幕的列表。如果此列表上有多个条目,在过滤掉您自己的主屏幕(如果您正在编写一个)后,您就没有可靠的方法来确定哪些是“默认主应用程序”