(Legacy) Adobe Pass-Authentifizierung und das neue Android 6-Berechtigungsmodell „Marshmallow“ adobe-primetime-authentication-and-the-android-6-marshmallow-new-permissions-model
Die neue Android 6 Marshmallow-Version führt einige Aktualisierungen des Berechtigungsmodells ein, die sich auf das Verhalten von Apps auswirken können, die die bestehende Adobe Pass Authentication SDK Version 1.8 und älter verwenden.
Als neue Funktion bietet das neue Android-Betriebssystem granulare Kontrolle über die Berechtigungen, die Apps zum Zeitpunkt der Installation und zur Laufzeit benötigen.
Insbesondere für Apps, die in Android Studio mit API Level 23 entwickelt wurden und die die Adobe Pass-Authentifizierungs-SDK verwenden, muss der Entwickler benutzerdefinierten Code schreiben (siehe Code-Snippet unten), den Trigger für das Dialogfeld „Berechtigungen zulassen/verweigern“.
Im Folgenden finden Sie den Code-Auszug, der zum Anfordern des Schreibzugriffs auf den externen Speicher des Geräts verwendet wird:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.WRITE_EXTERNAL_STORAGE) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
// MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
Aus Benutzersicht werden Benutzer bei der Installation von einem Fenster begrüßt, in dem sie aufgefordert werden, Lese-/Schreibberechtigungen für Dateien zu bestätigen (siehe Abbildung 2 unten). Dies führt zu einem der beiden folgenden Ergebnisse:
- Wenn der Benutzer bestätigt werden die Berechtigungen beibehalten, der reguläre Authentifizierungsfluss wird beibehalten und Token werden im globalen Speicher gespeichert. Benutzer bleiben in der App und über Apps hinweg mithilfe der Adobe Pass-Authentifizierung authentifiziert, solange die Token gültig sind.
- Wenn der Benutzer verweigert die Berechtigungen, schlagen Schreibaktionen im Speicher fehl und die Benutzer werden nur authentifiziert, bis sie die App verlassen. Beachten Sie, dass einige Anwendungen beim Wechsel zwischen Vordergrund und Hintergrund neu initialisiert werden, sodass die Benutzer bei dieser Aktion abgemeldet werden. Token werden NICHT gespeichert und die Benutzer müssen sich jedes Mal authentifizieren, wenn sie die App verwenden.
Abbildung: Das Dialogfeld „Berechtigungsanfrage“ für geschriebene Apps, die auf API-Ebene 23 abzielen