In Android M und höher müssen Sie nach den Berechtigungen fragen, die als "gefährlich" eingestuft sind. Sie können eine vollständige Liste der Berechtigungen finden, die angefordert werden müssen here.
Sie können jedoch die Anforderung vermeiden, indem Sie compileSDK und targetSDK auf < 23 setzen. Beachten Sie, dass dies die Verwendung der API 23 + -Funktionen verhindert.
Sie fordern die Berechtigungen wie folgt aus:
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},//Your permissions here
1);//Random request code
Überprüfen Sie, ob der Benutzer API läuft 23+ by doing:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
//Request: Use a method or add the permission asking directly into here.
}
Und wenn Sie das Ergebnis überprüfen, dann können Sie es tun wie folgt:
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case 1: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
Toast.makeText(MainActivity.this, "Permission denied to read your External storage", Toast.LENGTH_SHORT).show();
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
wow..Danke .. !! –