Как программно открыть экран настроек Home Launcher List в Android с помощью Intent

Я ищу способ открыть экран списка Launcher в разделе Home в настройках системы с помощью Intent.

Основные настройки системы >> Домой >> Список запуска.

Мне нужно открыть этот список Launcher с помощью Intent. Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен. Большое спасибо.

3 ответа

Чтобы открыть страницу настроек главного экрана, позвоните 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);
}

Для тех, кто хочет открыть задание по умолчанию для настроек приложений запуска, вы можете использовать следующий код

  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 intent = new Intent();
  intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
  Uri uri = Uri.fromParts("package", currentLauncherPackageName, null);
  intent.setData(uri);
  startActivity(intent);

В случае, если вам нужно поручить пользователю отключить приложение запуска по умолчанию перед выбором приложения

Intent intent = new Intent(Settings.ACTION_HOME_SETTINGS);
startActivity(intent);
Другие вопросы по тегам