在AndroidManifest.xml中添加"WRITE_EXTERNAL_STORAGE"后仍然被拒绝

Mil*_*lie 7 permissions android android-sdcard


解决方案:测试目标项目还必须在AndroidManifest.xml中添加WRITE_EXTERNAL_STORAGE

这个问题来自一个android测试项目,它无法将测试结果写入SD卡.将WRITE_EXTERNAL_STORAGE添加到测试目标项目中可以解决此问题.


当我使用下面的代码将xml文件写入模拟器的SD卡时,总是抛出权限被拒绝.我在AndroidManifest.xml中添加了WRITE_EXTERNAL_STORAGE.

        @Override
public void onStart(){

    try {
        File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        myWriter = new FileWriter(new File(root, TEST_RESULT+".xml"));          
        startResultOutput(myWriter);
    } catch (IOException e) {
        Log.d("TestInfo", "after new FileWriter: "+e.getMessage());
    }
    super.onStart();

}
Run Code Online (Sandbox Code Playgroud)

捕获IOExcetion,消息是:在新FileWriter之后:/mnt/sdcard/InterFace_test_result.xml(权限被拒绝)

下面是清单代码

<application android:icon="@drawable/icon" android:label="@string/app_name">

<uses-library android:name="android.test.runner" />
</application>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

SD卡已安装,因为我可以使用另一个应用程序将文件写入外部SD卡.

有人能给我一些建议吗?

PS:仿真器系统是2.3.3

Adi*_*mro 1

问题:

我能理解的是,你添加了permission两次

  1. 一次在Application标签中作为属性
  2. 和第二次使用<use-permission>

解决方案:

尝试删除其中任何一个。