Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获取默认的家庭应用程序?_Android_Default_Android Launcher - Fatal编程技术网

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()
,您将获得所有已安装主屏幕的列表。如果此列表上有多个条目,在过滤掉您自己的主屏幕(如果您正在编写一个)后,您就没有可靠的方法来确定哪些是“默认主应用程序”