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

Как я могу открыть настройки программно?


person Behnam    schedule 22.10.2013    source источник


Ответы (11)


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

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

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

Ответ на 2020 год и далее (на языке Kotlin):

startActivity(Intent(Settings.ACTION_SETTINGS))

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

person finnmglas    schedule 29.05.2020
comment
Спасибо, друг, обновите свой код следующим образом: startActivity(new Intent(Settings.ACTION_SETTINGS)); - person Muhammad Ali; 30.06.2020
comment
Решение появилось спустя 7 лет. - person Gary Chen; 04.09.2020
comment
Здесь импорт для «Настройки» — это импорт android.provider.Settings. - person Kishan Solanki; 22.10.2020

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

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

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

person kjurkovic    schedule 22.10.2013
comment
любой способ вернуться, когда пользователь нажал кнопку «Очистить кеш»? - person SweetWisher ツ; 28.11.2014
comment
@SweetWisherヅ Вам просто нужно отредактировать исходный код. - person Behnam; 14.02.2015
comment
Теперь вы можете использовать намерение Intent = new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS); startActivity(намерение); Для каждой основной категории настроек существует множество констант, из которых вы можете выбирать. Просто напишите Настройки. и Android Studio покажет вам все категории в автозаполнении. - person Asim Qasımzade; 06.02.2018
comment
Могу ли я найти определенный параметр в приложении «Настройки» и программно открыть этот конкретный параметр из моего приложения? например Могу ли я искать OTG из своего приложения в настройках телефона? - person Divya Gupta; 24.01.2020
comment
Мне кажется, что использования StartActivity достаточно, я всегда получаю результат CANCELD при возвращении в приложение (что нормально при возврате с помощью кнопки «Назад»). Таким образом, приложение не уведомляется об изменении настроек таким образом. - person this.myself; 17.03.2020
comment
@kjurkovic, не могли бы вы объяснить, почему необходимо startActivityForResult, вы можете просто открыть приложение настройки, используя ===> startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); - person The Black Horse; 24.04.2020
comment
Поскольку этот код открывает настройки в том же окне, он может испортить функциональность вашего приложения. Используйте код из этого ответа, чтобы предотвратить это. - person finnmglas; 29.05.2020
comment
@TheBlackHorse, потому что с помощью startActivityForResult вы можете выполнить некоторые проверки, если вам нужно, когда вы вернетесь в приложение из настроек в методе onActivityResult. Он также работает с startActivity. @finnmglas Android не имеет окон. У него есть действия - поскольку настройки - это отдельное приложение со своими собственными действиями, то, что вы говорите, становится совершенно глупым. - person kjurkovic; 01.06.2020

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

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

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

person TMH    schedule 22.10.2013
comment
Какой экран настроек предлагает это? - person IgorGanapolsky; 01.05.2017
comment
@IgorGanapolsky открывает настройки на основе местоположения внутри настроек. - person androminor; 14.04.2020

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

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

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

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

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

person Cafe Không Đường    schedule 30.01.2016
comment
Вам необходимо передать REQUEST_CODE в качестве второго аргумента startActivityForResult. - person Chintan Rathod; 13.09.2017

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

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

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

person GrIsHu    schedule 22.10.2013
comment
Есть ли способ открыть настройки в новой опции: контролировать, какие приложения могут читать ваши уведомления (добавлено в API 18)? - person Javi; 05.03.2014

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

    val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
    intent.data = Uri.parse("package:" + context.packageName)
    startActivity(intent)
person tim.paetz    schedule 24.04.2020

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

startActivity(new Intent(Settings.ACTION_SETTINGS));

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

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

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

person Jorgesys    schedule 14.09.2016

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

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);
    }
}
person Shohan Ahmed Sijan    schedule 10.03.2015

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

    startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
person Satender Kumar    schedule 25.04.2018

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

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

открыть настройку местоположения 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();
person Aftab Alam    schedule 03.05.2020