Mam pytanie dotyczące nowej wersji Androida Marshmallow:
Czy można wyświetlić ekran uprawnień dla konkretnej aplikacji za pośrednictwem zamiaru lub czegoś podobnego?
Możliwe jest wyświetlenie ustawień aplikacji z następującym kodem - czy istnieje analogiczne rozwiązanie do bezpośredniego otwierania ekranu uprawnień?
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
Przeprowadziłem już kilka badań na ten temat, ale nie byłem w stanie znaleźć odpowiedniego rozwiązania - byłbym wdzięczny za każdą pomoc!
android
android-permissions
android-6.0-marshmallow
Frederik Schweiger
źródło
źródło
Odpowiedzi:
Zgodnie z oficjalnym filmem z uprawnieniami Marshmallow (przy znaku 4m 43s ), musisz zamiast tego otworzyć stronę Ustawienia aplikacji (stamtąd wystarczy jedno kliknięcie na stronie Uprawnienia).
Aby otworzyć stronę ustawień, zrób to
źródło
To jest niemożliwe. Próbowałem to też zrobić. Mógłbym ustalić nazwę pakietu i działanie, które zostanie uruchomione. Ale w końcu dostaniesz wyjątek bezpieczeństwa z powodu brakującego uprawnienia, którego nie możesz zadeklarować.
AKTUALIZACJA:
Jeśli chodzi o drugą odpowiedź, polecam również otworzyć ekran ustawień aplikacji. Robię to za pomocą następującego kodu:
Ponieważ nie chcę mieć tego w stosie historii, usuwam go za pomocą flag intencyjnych.
źródło
Opis Otwiera stronę ustawień Szczegóły aplikacji. Stąd użytkownik musi ręcznie przypisać pożądane uprawnienia.
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
Intent.FLAG_ACTIVITY_NEW_TASK
Opcjonalny . Jeśli jest ustawiony, otwiera ekran ustawień (aktywność) jako nową aktywność. W przeciwnym razie zostanie otwarty w aktualnie działającej aktywności.
Uri.fromParts("package", getPackageName(), null)
Przygotowuje lub tworzy identyfikator URI, a getPackageName () - zwraca nazwę pakietu aplikacji.
intent.setData(uri)
Nie zapomnij tego ustawić . W przeciwnym razie dostaniesz
android.content.ActivityNotFoundException
. Ponieważ ustawiłeś swój zamiar jako,Settings.ACTION_APPLICATION_DETAILS_SETTINGS
a Android oczekuje, że nazwa będzie wyszukiwana.źródło
Zamiast tego możesz otworzyć ogólne ustawienia konkretnej aplikacji za pomocą jednej linii
źródło
Nie można programowo otworzyć ekranu uprawnień. Zamiast tego możemy otworzyć ekran ustawień aplikacji.
Kod
Przykładowe dane wyjściowe
źródło
Jeśli chcesz napisać mniej kodu,
Kotlin
możesz to zrobić:Na podstawie odpowiedzi Martina Konecnego
źródło
Styl Kotlin.
źródło
Może ci to pomóc
źródło
Jeżeli mówimy o FLYME OS (Meizu) TYLKO istnieją własną aplikacja bezpieczeństwa z uprawnieniami.
Aby go otworzyć, użyj następujących zamiarów:
Z przyczyn BuildConfig jest z aplikacji BuildConfig .
źródło
Xamarin Forms Android:
źródło
nie jest możliwe pragmatyczne uzyskanie pozwolenia ... ale źle sugeruję, abyś wpisał ten wiersz kodu w try {} catch {}, co spowoduje, że twoja aplikacja niestety się zatrzyma ... i w treści catch, utworzy się okno dialogowe, które będzie poruszać się po od małego samouczka, aby włączyć rysowanie na uprawnieniu innych aplikacji ... a następnie kliknij przycisk Tak, kliknij ten kod ...
celem tego jest bezpośrednie otwarcie listy rysowania nad innymi aplikacjami w celu zarządzania uprawnieniami, a następnie tutaj jest jedno kliknięcie, aby narysować inne aplikacje Uprawnienia ... wiem, że nie jest to odpowiedź, której szukasz ... ale Robię to w moich aplikacjach ...
źródło