Wenn Sie ein Gerät mit Android 6.0 (API 23) oder höher verwenden, müssen Sie zur Laufzeit anfordern.
READ_EXTERNAL_STORAGE ist als gefährliche Erlaubnis eingestuft.
Also, bevor implementieren externe Speicherlogik lesen, müssen Sie Benutzerberechtigungen fragen
, das zu tun, müssen zunächst diese in Ihrer Aktivität hinzufügen
// Request permissions
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(
this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE
);
}
if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(
this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
PERMISSION_REQUEST_READ_EXTERNAL_STORAGE
);
}
Dann werden Sie überprüfen, ob der Benutzer erteilt hat Berechtigungen, die diese Überschreibungsmethode hinzufügen.
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case PERMISSION_REQUEST_READ_EXTERNAL_STORAGE:
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Log.d("PERMISSION", "SUCCESS");
}else{
Log.d("PERMISSION", "FAIL");
}
return;
case PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE:
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Log.d("PERMISSION", "SUCCESS");
}else{
Log.d("PERMISSION", "FAIL");
}
return;
}
}
https://developer.android.com/training/permissions/request.html (erforderlich ab Android 6.0) –