添加“WRITE_EXTERNAL_STORAGE”后权限仍然被拒绝在AndroidManifest.xml中
解决方案:测试目标项目还必须在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();
}
捕获了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卡。
有人能给我一些建议吗?
附: 模拟器系统是2.3.3
solution: test target project must also add WRITE_EXTERNAL_STORAGE in AndroidManifest.xml
this question came from an android test project,which can't write test result into SDcard. Add WRITE_EXTERNAL_STORAGE into test target project can solve this problem.
Always throw permission denied when I use code below to write xml file into emulator's sdcard.
I have added WRITE_EXTERNAL_STORAGE" in AndroidManifest.xml.
@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();
}
catched IOExcetion, the message was:
after new FileWriter: /mnt/sdcard/InterFace_test_result.xml (Permission denied)
Below is the manifest code
<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 card was mounted, because I can use another application to write file into external sd card.
Can anybody give me some suggestion?
PS:
the emulator system is 2.3.3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题:
我能理解的是,
您在
Application
标记中添加permission
两次解决方案:
尝试删除其中任何一个。
Problem:
What I can understand is,
You are adding
permission
two timesApplication
tag as an attribute<use-permission>
Solution:
Try removing any one of them.
您应该在
标记之前添加权限标记
。You should add permission tag
<uses-permission>
before<application>
tag.