如何通过意图在安卓系统中以编程的方式打开主屏幕启动器列表设置屏幕。

6

我正在寻找一种使用Intent在系统设置的Home选项中打开启动器列表屏幕的方法。

主要的系统设置 >> Home >> 启动器列表。

我需要使用Intent打开这个启动器列表屏幕。如果有人能指导我正确的方向,我会非常感激。非常感谢。


https://dev59.com/aWYs5IYBdhLWcg3wE_ze#13239706 - CrandellWS
3个回答

7
要打开主屏幕设置页面,请调用Settings.ACTION_HOME_SETTINGS意图。但是,只有API 21及以上支持此功能。
对于API 20及以下的版本,需要调用Settings.ACTION_SETTINGS意图,用户必须自行导航到目标页面。(最好提前给出说明)
为了在可用时提供最佳意图,请使用以下代码。这将直接在API 21及以上版本上打开主屏幕设置,否则它将在API 20及以下版本上打开设置页面。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
    final Intent intent = new Intent(Settings.ACTION_HOME_SETTINGS);
    startActivity(intent);
}
else {
    final Intent intent = new Intent(Settings.ACTION_SETTINGS);
    startActivity(intent);
}

2

如果您想打开默认启动器应用程序的设置活动,可以使用以下代码:

  PackageManager localPackageManager = getPackageManager();
  Intent intent = new Intent("android.intent.action.MAIN");
  intent.addCategory("android.intent.category.HOME"); 
  final String currentLauncherPackageName = localPackageManager.resolveActivity(intent,
            PackageManager.MATCH_DEFAULT_ONLY).activityInfo.packageName;
  
  Intent intent2 = new Intent();
  intent2.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
  Uri uri = Uri.fromParts("package", currentLauncherPackageName, null);
  intent2.setData(uri);
  startActivity(intent2);

如果需要指示用户在选择您的应用程序之前禁用默认的启动器应用程序


这是一个很好的回答,适用于以下问题 https://dev59.com/aWYs5IYBdhLWcg3wE_ze#13239706 - CrandellWS

1
Intent intent = new Intent(Settings.ACTION_HOME_SETTINGS);
startActivity(intent);

请添加更多信息。不鼓励仅包含代码和“试试这个”答案,因为它们没有可搜索的内容,并且没有解释为什么有人应该“试试这个”。 - abarisone
这对我有用。顺便说一下:android.provider.Settings是要使用的完全限定类。 - dazed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接