Ich habe eine Frage zur neuen Android Marshmallow-Version:
Ist es möglich, den Berechtigungsbildschirm für eine bestimmte App über eine Absicht oder ähnliches anzuzeigen?
Es ist möglich, die App-Einstellungen mit dem folgenden Code anzuzeigen - gibt es eine analoge Lösung zum direkten Öffnen des Berechtigungsbildschirms?
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
Ich habe bereits einige Nachforschungen angestellt, konnte aber keine richtige Lösung finden - ich würde mich über jede Hilfe freuen!
android
android-permissions
android-6.0-marshmallow
Frederik Schweiger
quelle
quelle
Antworten:
Laut dem offiziellen Marshmallow-Berechtigungsvideo (an der 4m 43s-Marke ) müssen Sie stattdessen die Seite mit den Anwendungseinstellungen öffnen (von dort aus ist es ein Klick auf die Seite Berechtigungen).
Um die Einstellungsseite zu öffnen, würden Sie tun
quelle
Das ist nicht möglich. Ich habe es auch versucht. Ich könnte den Paketnamen und die Aktivität herausfinden, die gestartet wird. Am Ende erhalten Sie jedoch eine Sicherheitsausnahme aufgrund einer fehlenden Berechtigung, die Sie nicht deklarieren können.
AKTUALISIEREN:
In Bezug auf die andere Antwort empfehle ich außerdem, den Bildschirm mit den App-Einstellungen zu öffnen. Ich mache das mit folgendem Code:
Da ich dies nicht in meinem Verlaufsstapel haben möchte, entferne ich es mit Absichtsflags.
quelle
Beschreibung Öffnet die Einstellungsseite für Details für die App. Von hier aus muss der Benutzer die gewünschte Berechtigung manuell zuweisen.
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
Intent.FLAG_ACTIVITY_NEW_TASK
Optional . Wenn festgelegt, wird der Einstellungsbildschirm (Aktivität) als neue Aktivität geöffnet. Andernfalls wird es in der aktuell ausgeführten Aktivität geöffnet.
Uri.fromParts("package", getPackageName(), null)
Bereitet einen URI vor oder erstellt ihn, während getPackageName () - den Namen Ihres Anwendungspakets zurückgibt.
intent.setData(uri)
Vergessen Sie nicht, dies einzustellen . Andernfalls erhalten Sie
android.content.ActivityNotFoundException
. Weil Sie Ihre Absicht als festgelegt habenSettings.ACTION_APPLICATION_DETAILS_SETTINGS
und Android erwartet, dass ein Name gesucht wird.quelle
Stattdessen können Sie die allgemeinen Einstellungen einer bestimmten App mit einer Zeile öffnen
quelle
Es ist nicht möglich, den Berechtigungsbildschirm programmgesteuert zu öffnen. Stattdessen können wir den App-Einstellungsbildschirm öffnen.
Code
Beispielausgabe
quelle
Wenn Sie weniger Code schreiben möchten,
Kotlin
können Sie dies tun:Basierend auf der Antwort von Martin Konecny
quelle
Kotlin-Stil.
quelle
Vielleicht hilft dir das
quelle
Wenn wir NUR über FLYME OS (Meizu) sprechen, gibt es eine eigene Sicherheits-App mit Berechtigungen.
Verwenden Sie zum Öffnen die folgende Absicht:
Of-Ursache BuildConfig ist die App BuildConfig .
quelle
Xamarin Forms Android:
quelle
Es ist nicht möglich , die Erlaubnis pragmatisch zu erhalten ... aber ich empfehle Ihnen, diese Codezeile in try {} catch {} zu setzen, wodurch Ihre App leider stoppt ... und in catch body ein Dialogfeld zu erstellen, in dem Sie navigieren Benutzer zu kleinem Tutorial, um das Zeichnen über die Berechtigung anderer Apps zu aktivieren ... dann klicken Sie auf die Schaltfläche Ja, um diesen Code einzugeben ...
Diese Absicht ist es, die Liste der Zeichnungen über andere Apps direkt zu öffnen , um Berechtigungen zu verwalten. Von hier aus ist es ein Klick, um über andere Apps zu ziehen. Berechtigungen ... Ich weiß, dies ist nicht die Antwort, die Sie suchen ... aber Ich mache das in meinen Apps ...
quelle