2016-07-22 18 views
0

Ich versuche Code folgendeDatei kann nicht in Android Lolipop löschen und höher

String Data = cursor.getString(cursor 
         .getColumnIndex(MediaStore.Audio.Media.DATA)); 

    File file = new File(Data); 
    if (file != null && file.exists()) { 
          // delete it 
          Toast.makeText(FileEditorDialog.this, "deleted not null", 
            Toast.LENGTH_LONG).show(); 
         } 


         boolean deleted = file.delete(); 


         if (deleted) { 
          Toast.makeText(FileEditorDialog.this, 
            "Successfully Deleted", Toast.LENGTH_LONG).show(); 

          sendBroadcast(new Intent(
            Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, 
            Uri.parse("file://" 
              + Environment.getExternalStorageDirectory()))); 
          finish(); 
         } 

Dieser Code in Android Jelly Bean funktioniert aber nicht in android lolipop, wie wir Dexter Dateien in android lolipop

+1

Haben Sie die Berechtigung WRITE_EXTERNAL_STORAGE? –

+0

Bitte geben Sie uns eine Manifest-Datei –

+0

Was ist der Fehler? – Henry

Antwort

1

Versuchen löschen Bibliothek Erlaubnis überprüfen - WRITE_EXTERNAL_STORAGE

sicher, dass Sie die Erlaubnis in AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
haben

Dies ist optional, aber Bibliothek namens Dexter einfacher Umgang mit Instant-Berechtigungen. fügen Sie diese Abhängigkeit build.gradle (app)

compile 'com.karumi:dexter:2.2.2' 

Anwendungsklasse erstellen:

public class MyApplication extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Dexter.initialize(getApplicationContext()); 
    } 

} 

und legen Sie es in Ihrem AndroidManifest.xml

<application 
     android:name=".MyApplication" 

Verwendung dieses Stück Code fragen Benutzerberechtigung

1

Sie müssen Runitme Berechtigungen von Benutzer in Android 6.0 nur zu erklären, sie Manifest ist nicht genug.

Look here in meiner früheren Antwort darauf.