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

时间:2011-12-24 15:31:15

标签: android permissions android-sdcard


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

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


当我使用下面的代码将xml文件写入模拟器的sdcard时,总是抛出权限被拒绝。 我在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();

}

捕获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>

SD卡已安装,因为我可以使用其他应用程序将文件写入外部SD卡。

有人可以给我一些建议吗?

PS: 仿真器系统是2.3.3

2 个答案:

答案 0 :(得分:1)

<强>问题:

我能理解的是, 您要两次添加permission

  1. Application标记中的一次属性
  2. 并且第二次使用<use-permission>
  3. <强>解决方案:

    尝试删除其中任何一个。

答案 1 :(得分:0)

您应该在<uses-permission>代码之前添加权限标记<application>