Відкриття налаштувань Android програмно


Відповіді:


10

Я використав код з найбільш схваленої відповіді :

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

Він відкриває налаштування пристрою в тому ж вікні , завдяки чому користувачі мого андроїд-програми ( finnmglas / Launcher ) для андроїда застрягли там.

Відповідь на 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 ヅ Вам просто потрібно відредагувати вихідний код.
Бенам

2
Тепер ви можете використовувати Intent intennt = new Intent (android.provider.Settings.ACTION_SECURITY_SETTINGS); startActivity (наміри); Існує ціла купа констант для кожної основної категорії налаштувань, яку ви можете вибрати. Просто напишіть Налаштування. і Android Studio покажуть вам усі категорії в автоматичному заповненні.
Асим Касімзаде

1
Чи можу я шукати певний параметр у програмі «Налаштування» та відкривати це налаштування програмно у своєму додатку? наприклад, чи можна шукати OTG у своєму додатку в Налаштуваннях телефону?
Дівія Гупта

Мені здається, що використання StartActivity достатньо, я завжди отримую результат ОТМЕНИТИ, коли повертаюся в додаток (що нормально, коли повертаюся з кнопкою "назад"). Таким чином, додаток не отримує сповіщення про змінені налаштування таким чином.
this.myself

37

Це зробило це для мене

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

Коли вони натискають назад, вона повертається до моєї програми.


Який екран налаштувань пропонує це?
ІгорГанапольський

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" як 2-й аргумент startActivityForResult.
Чінтан Ратод

9

Перегляньте сторінку програмного відображення налаштувань

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

Загалом, ви використовуєте заздалегідь задану константу Settings.ACTION__SETTINGS. Повний список можна знайти тут


1
Чи є спосіб відкрити налаштування в новій опції: "Керуйте, які програми можуть читати ваші сповіщення" (додано в API 18)?
Хаві

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

відкрити налаштування розташування андроїда програмно за допомогою діалогового вікна оповіщення

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.