2016-07-22 68 views
0

我想下面的代码无法删除的Android棒棒糖文件和更高

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(); 
         } 

这个代码在安卓果冻豆,但不是在Android的棒棒糖,我们如何能在Android的棒棒糖删除文件

+1

你有权限WRITE_EXTERNAL_STORAGE吗? –

+0

请提供给我们一个清单文件 –

+0

错误是什么? – Henry

回答

1

尝试德克斯特库检查权限 - WRITE_EXTERNAL_STORAGE

确保您在AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
有权限

这是可选的,但名为Dexter的库更容易处理即时权限。添加这种依赖到的build.gradle(APP)

compile 'com.karumi:dexter:2.2.2' 

创建应用程序类:

public class MyApplication extends Application { 

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

} 

,并设置它在你的AndroidManifest.xml

<application 
     android:name=".MyApplication" 

使用这段代码问用户权限。

   Dexter.checkPermission(new PermissionListener() { 
       @Override public void onPermissionGranted(PermissionGrantedResponse response) { 

        deleteFile();//call the method to delete file 

       } 
       @Override public void onPermissionDenied(PermissionDeniedResponse response) { 
        Toast.makeText(getApplicationContext(), "Permission denied", Toast.LENGTH_LONG).show(); 
       } 
       @Override public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) { 
        token.continuePermissionRequest(); 
       } 
      }, Manifest.permission.WRITE_EXTERNAL_STORAGE); 
1

您必须从android 6.0中的用户获得Runitme权限,只声明他们的清单是不够的。

在我之前的回答中看here