6

I am looking for a way to open a Launcher list screen in Home option in system Settings using Intent.

main system Settings >> Home >> Launcher List.

I need to open this Launcher list screen using Intent. If anyone could point me in the right direction I would really appreciate it. Thanks much.

Jadav Nirav
  • 89
  • 1
  • 5

3 Answers3

7

To bring up the home screen settings page, call the Settings.ACTION_HOME_SETTINGS intent. However this is ONLY supported in API 21 and above.

API 20 and below need to call the Settings.ACTION_SETTINGS intent, and the user must navigate the rest of the way. (Preferably with instructions before hand)

To provide the best intent when available, use the following code. This will open the home settings directly on API 21 and above, else it will open the settings page on API 20 and below.

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);
}
IAmGroot
  • 13,760
  • 18
  • 84
  • 154
2

For those who want to open the default launcher apps settings activity you could use the following code

  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);

In case you need to instruct the user to disable default launcher app before selecting your app

CrandellWS
  • 2,708
  • 5
  • 49
  • 111
Ismail Iqbal
  • 2,774
  • 1
  • 25
  • 46
1
Intent intent = new Intent(Settings.ACTION_HOME_SETTINGS);
startActivity(intent);
timothyjc
  • 2,188
  • 3
  • 29
  • 54
  • Please edit with more information. Code-only and "try this" answers are discouraged, because they contain no searchable content, and don't explain why someone should "try this". – abarisone Jul 18 '16 at 07:23
  • This worked for me. FYI: `android.provider.Settings` is the fully qualified class to use. – dazed Dec 30 '21 at 11:42