In Android 6 (Eibisch), auch wenn der Benutzer alle Berechtigungen akzeptiert Bei der Installation können sie später entscheiden, einige dieser Berechtigungen von Ihnen zu entfernen.
Schnelle Lösung, aber nicht zu empfehlen: vielleicht, wenn Sie Ihre targetSdkVersion
im gradle zu 22
ändern, wird das Problem gelöst.
Wie zu implementieren?(Best Practices)
zuerst fest, ob das Gerät des Benutzers ein Eibisch Gerät ist oder nicht:
private boolean shouldAskPermission(){
return(Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1);
}
Wenn shouldAskPermission()
Rückkehr true
, bitten um die Erlaubnis, die Sie brauchen:
String[] perms = {"android.permission.WRITE_EXTERNAL_STORAGE"};
int permsRequestCode = 200;
requestPermissions(perms, permsRequestCode);
Die Methode requestPermissions(String[] permissions, int requestCode);
ist eine öffentliche Methode, die in der Android-Aktivitätsklasse gefunden wird.
Sie die Ergebnisse Ihrer Anfrage im Verfahren erhalten onRequestPermissionResult wie unten dargestellt:
@Override
public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults){
switch(permsRequestCode){
case 200:
boolean writeAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;
break;
}
}
Nach Erhalt der Ergebnisse
, müssen Sie behandeln sie angemessen.
Empfohlene Berechtigungen Fluss:
Mehr Info:
Ein Benutzer mit einem Marshmallow Gerät hat jetzt die Möglichkeit gefährliche Berechtigungen über die Anwendungseinstellungen zu widerrufen
Android definiert einige p Ermissions als "gefährlich" und einige Berechtigungen als "normal." Beide sind im Manifest Ihrer Anwendung erforderlich, aber nur gefährliche Berechtigungen erfordern eine Laufzeitanforderung.
Wenn Sie das neue Berechtigungsmodell (Laufzeitanforderung) nicht implementiert haben, kann die Aufhebung von Berechtigungen zu unerwünschten Benutzererfahrungen und in einigen Fällen zu Anwendungsabstürzen führen.
Die folgende Tabelle listet alle aktuellen gefährliche Berechtigungen und ihre jeweiligen Gruppen:
Wenn der Benutzer eine Berechtigung in einer Gruppe/Kategorie nimmt sie die gesamte Gruppe übernehmen!
Quelle:http://www.captechconsulting.com
Mit Dexter Library:
können Sie Dexter verwenden. Android-Bibliothek, die den Prozess der Anforderung von Berechtigungen zur Laufzeit vereinfacht.
Ich denke, Sie sollten neue Berechtigungen Funktionen auf Android 6.0 hinzugefügt und ändern Sie Ihren Code entsprechend .. !! – AndiGeeky
Ich habe die Seite [Manifest.permission] (http://developer.android.com/reference/android/Manifest.permission.html) gelesen, und nichts besonderes gefunden. – HelloSilence
@ samuel40: Ich denke, du weißt nichts über neues Modell. Dies ist alt, also bitte überprüfen Sie dies -> http://android-developers.blogspot.in/2015/08/building-better-apps-with-runtime.html – AndiGeeky