Программное открытие настроек Android


Ответы:


11

Я использовал код из ответа, получившего наибольшее количество голосов :

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

Он открывает настройки устройства в том же окне , поэтому пользователи моего приложения для Android ( finnmglas / Launcher ) для Android застряли там.

Ответ на 2020 год и далее (в Котлине):

startActivity(Intent(Settings.ACTION_SETTINGS));

Он работает в моем приложении, должен работать и в вашем без каких-либо нежелательных последствий.


4
2020 приветствует вас!
Бехнам

Спасибо, друг, обновите свой код следующим образом: startActivity (новое намерение (Settings.ACTION_SETTINGS));
Мухаммед Али

200

Вы можете открыть с

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

Вы можете вернуться, нажав кнопку «Назад» на устройстве.


любой способ вернуться, когда пользователь нажал кнопку Очистить кеш?
SweetWisher ツ

1
@SweetWisher ヅ Вам просто нужно отредактировать исходный код.
Behnam

2
Теперь вы можете использовать Intent intent = new Intent (android.provider.Settings.ACTION_SECURITY_SETTINGS); startActivity (намерение); Для каждой основной категории настроек есть целый набор констант, из которых вы можете выбирать. Просто напишите Настройки. а Android Studio покажет вам все категории с автозаполнением.
Асим Касымзаде

1
Могу ли я выполнить поиск определенного параметра в приложении "Настройки" и открыть этот конкретный параметр программно из моего приложения? например, могу ли я искать OTG из своего приложения в настройках телефона?
Дивья Гупта,

Мне кажется, что использования StartActivity достаточно, я всегда получаю результат CANCELD, когда возвращаюсь в приложение (что нормально, когда возвращаюсь с кнопкой возврата). Таким образом, приложение не получает уведомления об изменении настроек.
this.myself

37

Это сделало это для меня

Intent callGPSSettingIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(callGPSSettingIntent);

Когда они нажимают назад, он возвращается в мое приложение.


Какой экран настроек предлагает этот экран?
Игорь Ганапольский 01

1
@IgorGanapolsky он открывает настройки на основе местоположения внутри "Настройки"
androminor

20

Вы можете попробовать позвонить:

startActivityForResult(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));

для другого экрана на экране настроек вы можете перейти к

https://developer.android.com/reference/android/provider/Settings.html

Надеюсь помочь вам в этом деле.


2
Вам необходимо передать REQUEST_CODE в качестве второго аргумента startActivityForResult.
Чинтан Ратод,

9

Ознакомьтесь с программным отображением страницы настроек

    startActivity(context, new Intent(Settings.ACTION_SETTINGS), /*options:*/ null);

Как правило, вы используете предопределенную константу Settings.ACTION__SETTINGS. Полный список можно найти здесь


1
Есть ли способ открыть настройки в новой опции: «Контролировать, какие приложения могут читать ваши уведомления» (добавлено в API 18)?
Javi

6

Для этого просто используйте намерение с помощью константы ACTION_SETTINGS , специально определенной для отображения системных настроек:

startActivity(new Intent(Settings.ACTION_SETTINGS));

startActivityForResult () является необязательным, только если вы хотите вернуть некоторые данные, когда действие настроек закрыто.

startActivityForResult(new Intent(Settings.ACTION_SETTINGS), 0);

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


6

Вы можете создать еще один класс для такого рода занятий.

public class Go {

   public void Setting(Context context)
    {
        Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
}

3

Используйте это намерение, чтобы открыть экран безопасности и местоположения в приложении настроек устройства Android.

    startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));

2

Если кто-то найдет этот вопрос, и вы хотите открыть настройки для своего конкретного приложения:

    val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
    intent.data = Uri.parse("package:" + context.packageName)
    startActivity(intent)

0

Отправить пользователя в настройки с установленным пакетом, например для разрешения WRITE_SETTINGS:

startActivityForResult(new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS).setData(Uri.parse("package:"+getPackageName()) ),0);

0

открыть настройку местоположения Android программно с помощью диалогового окна предупреждения

AlertDialog.Builder alertDialog = new AlertDialog.Builder(YourActivity.this);
alertDialog.setTitle("Enable Location");
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivity(intent);
      }
});
alertDialog.show();
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.