在Android模拟器中无法写入sd卡

11
我已经在AndroidManifest.xml文件中添加了这行代码:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然而,当我运行代码写入sd卡时,我会得到这个错误:

02-19 13:24:46.760: E/CameraTest(598): /mnt/sdcard/image.jpg: open failed: EACCES (Permission denied)

我该怎样解决这个问题?

编辑:我正在使用带有SD卡的Android模拟器。

编辑2:现在我知道问题出在哪里了:我调用了函数Environment.getExternalStorageState(),并且返回“已移除”。有人知道如何修复此问题并将状态设置为MEDIA_MOUNTED吗?

谢谢!


请查看这个这个 - George
@thinksteep:是的,SD卡已添加。顺便说一下,我正在使用模拟器。 - Saher Ahwal
@thinksteep:显然当我打印出getExternalStorageState时,我得到的是“已移除”,那么我如何挂载SD卡呢? - Saher Ahwal
4个回答

7

好的,我已经解决了这个问题。这是我在挂载SD卡时遇到的问题,Android不允许路径中出现空格!

以下是一个好的步骤(如果同时使用Eclipse):http://www.brighthub.com/mobile/google-android/articles/33240.aspx

注意:如果路径中有空格,请将SD卡镜像文件移动到其他地方,然后使用SD卡运行模拟器命令,一切都应该正常工作!


3
可能比那个更简单。我忘记配置模拟器来使用SD卡了。一旦我在设备上添加了SD卡,一切都正常了。
问候, 乔纳斯

2
我注意到,如果您正在使用Android 6.0模拟器,则可能会出现此问题,Android为(棉花糖)添加了新的权限模型。
技巧:如果您的目标版本为22或以下,则您的应用程序将在安装时请求所有权限,就像在运行低于Marshmallow的操作系统的任何设备上一样。

1

我清除了缓存,然后尝试分享图片(使用的是Pixlr应用程序),一切都很正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接