Otwieranie ustawień Androida programowo

Odpowiedzi:

10

Użyłem kodu z najbardziej pozytywnej odpowiedzi :

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

To otwiera ustawienia urządzenia w tym samym oknie , więc dostał użytkownicy mojego Android ( finnmglas / Launcher ) dla android zakleszczony tam.

Odpowiedź na rok 2020 i później (w Kotlinie):

startActivity(Intent(Settings.ACTION_SETTINGS));

Działa w mojej aplikacji, powinien również działać w Twojej bez żadnych niepożądanych konsekwencji.

finnmglas
źródło
4
2020 pozdrawia Cię!
Behnam
Dzięki przyjacielu, zaktualizuj swój kod w ten sposób: startActivity (new Intent (Settings.ACTION_SETTINGS));
Muhammad Ali
200

Możesz otworzyć za pomocą

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

Możesz wrócić, naciskając przycisk Wstecz na urządzeniu.

kjurkovic
źródło
jakikolwiek sposób, aby wrócić, gdy użytkownik nacisnął przycisk Wyczyść pamięć podręczną?
SweetWisher ツ
1
@SweetWisher ヅ Wystarczy wyedytować kod źródłowy.
Behnam
2
Teraz możesz użyć Intent intent = new Intent (android.provider.Settings.ACTION_SECURITY_SETTINGS); startActivity (intencja); Istnieje cała masa stałych dla każdej głównej kategorii ustawień, z których możesz wybierać. Po prostu napisz Ustawienia. a Android Studio pokaże wszystkie kategorie w autouzupełnianiu.
Asim Qasımzade
1
Czy mogę wyszukać określone ustawienie w aplikacji Ustawienia i otworzyć je programowo z poziomu mojej aplikacji? np. czy mogę przeszukiwać OTG z mojej aplikacji w Ustawieniach telefonu?
Divya Gupta
Wydaje mi się, że użycie StartActivity jest wystarczające, zawsze otrzymuję wynik ANULUJ po powrocie do aplikacji (co jest normalne, gdy wracam z przyciskiem Wstecz). Dzięki temu aplikacja nie jest w ten sposób powiadamiana o zmianie ustawień.
this.myself
37

Zrobiło to dla mnie

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

Po naciśnięciu przycisku wraca do mojej aplikacji.

TMH
źródło
Jaki ekran ustawień oferuje ten ekran?
Igor Ganapolsky
1
@IgorGanapolsky otwiera ustawienia oparte na lokalizacji w „Ustawieniach”
androminor
20

Możesz spróbować zadzwonić:

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

aby przejść do innego ekranu na ekranie ustawień, możesz przejść do

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

Mam nadzieję, że pomogę ci w tym przypadku.

Cafe Không Đường
źródło
2
Musisz podać „REQUEST_CODE” jako drugi argument funkcji startActivityForResult.
Chintan Rathod
9

Sprawdź programowe wyświetlanie strony ustawień

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

Ogólnie rzecz biorąc, używasz predefiniowanej stałej Settings.ACTION__SETTINGS. Pełną listę można znaleźć tutaj

GrIsHu
źródło
1
Czy jest sposób, aby otworzyć ustawienia w nowej opcji: „Kontroluj, które aplikacje mogą czytać Twoje powiadomienia” (dodana w API 18)?
Javi
6

Aby to osiągnąć, po prostu użyj intencji, używając stałej ACTION_SETTINGS , specjalnie zdefiniowanej w celu wyświetlenia ustawień systemowych:

startActivity(new Intent(Settings.ACTION_SETTINGS));

startActivityForResult () jest opcjonalne, tylko jeśli chcesz zwrócić niektóre dane po zamknięciu działania settings.

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

tutaj możesz znaleźć listę elementów, aby pokazać określone ustawienia lub szczegóły aplikacji.

Jorgesys
źródło
6

Możesz stworzyć inną klasę do wykonywania tego rodzaju czynności.

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);
    }
}
Shohan Ahmed Sijan
źródło
3

Użyj tego zamiaru, aby otworzyć ekran zabezpieczeń i lokalizacji w aplikacji ustawień urządzenia z systemem Android

    startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
Satender Kumar
źródło
2

Jeśli ktoś znajdzie to pytanie i chcesz otworzyć ustawienia dla swojej konkretnej aplikacji:

    val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
    intent.data = Uri.parse("package:" + context.packageName)
    startActivity(intent)
tim.paetz
źródło
0

Wyślij użytkownika do ustawień ze zlokalizowanym pakietem, na przykład dla uprawnienia WRITE_SETTINGS:

startActivityForResult(new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS).setData(Uri.parse("package:"+getPackageName()) ),0);
phnghue
źródło
0

otwórz ustawienie lokalizacji Androida programowo za pomocą okna dialogowego ostrzeżenia

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();
Aftab Alam
źródło