Ich benutze Erlaubnis Laufzeit in App, weil Android 6+ es für gefährliche Erlaubnis aber bis zwingen, APP zu stoppen mein Code nicht Datei im Speicher speichern, obwohl Benutzer diese Erlaubnis im Dialog erlauben.Erhalte Fehler Erlaubnis write_external_storage mit Laufzeit Erlaubnis
Mein Code für die Erlaubnis erhalten, Laufzeit:
if(ContextCompat.checkSelfPermission(MainActivity.this,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}else{
saveFile();
}
Listener für die Prüfung von Benutzer gewährt oder verweigert:
public void onRequestPermissionsResult(int requestCode,String[] permission,int[] grantedResult){
super.onRequestPermissionsResult(requestCode, permission, grantedResult);
switch(requestCode){
case 1:
if(grantedResult.length > 0 && grantedResult[0] == PackageManager.PERMISSION_GRANTED){
Log.i("TAG","Permission Granted");
}else{
Log.i("TAG","Permission Denied");
}
}
}
Und Fehler logcat:
java.io.FileNotFoundException: /storage/1B0A-390B/hamed-baradaran.mp3: open failed: EACCES (Permission denied)
Savefile-Methode in dieser:
public void saveFile(){
InputStream in;
OutputStream out;
try{
in = getResources().openRawResource(R.raw.hamedbaradaran);
out = new FileOutputStream(Environment.getExternalStorageDirectory()+"/hamed-baradaran.mp3");
byte[] buffer = new byte[1024];
int length;
while((length = in.read(buffer)) > 0)
out.write(buffer,0,length);
out.flush();
out.close();
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
Bitte helfen Sie mir
Sind Sie versuchen, jede lesen Datei? Hast du zusätzlich die Erlaubnis zum Manifest hinzugefügt? –
Nein Ich möchte die Datei speichern –
Ja, ich habe die Berechtigung hinzugefügt, um zu manifestieren –