安卓5(HTC)EACCES(权限被拒绝)

16

Android 5(HTC HTC6525LVW os version: 5.0.1)上,应用无法在被应用所拥有的目录下的外部存储中创建文件夹/文件

[getExternalFilesDirs(String type)][1]方法返回父文件夹。

Sdcard已挂载。

是否有其他人遇到此问题或有解决建议?

(不幸的是,我没有这个设备进行更多测试)

编辑:从一位用户那里得知,在出现此错误之前,她对sdcard进行了加密,然后格式化了它。


你应该尝试使用一部不是HTC的手机,其配置(如相同的USB调试模式、相同的安装过程等)不能完全相同,以确定这是否只是Android问题还是HTC问题。 - d0nut
你是否正在尝试从与调用getExternalFilesDirs(String)的类相同的包中的类中创建文件夹/文件? - dragi
@helleye 是的,同一个包。 - Martin Vandzura
你尝试在另一台安装了v5.0.1的设备上运行过吗?通常来说,你的应用在哪些设备和Android版本上成功(或失败)运行过? - dragi
@helleye,问题只出现在我提问中指定的设备上。 - Martin Vandzura
2个回答

9

以下是可能导致此问题的一些想法:

  1. 如果手机在连接到电脑时运行USB存储模式,则仍然可以像平常一样部署/调试,但写操作将失败。

  2. 您缺少权限:在清单文件中,应检查是否有 <permission name=”android.permission.WRITE_EXTERNAL_STORAGE” >

  3. 权限位于错误位置:确保您的权限标记(在清单中)位于应用程序之外

  4. 写入 data 文件夹可能会导致此类问题,因此请确保您正在写入 sdcard 而不是 data

这就是我能想到的所有内容。希望能帮助到您 :)


谢谢回答,但这种情况下,这些观点都不正确。 - Martin Vandzura
很抱歉它没有帮助。没有太多的线索 :/ - d0nut

0

在你的 manifest.xml 文件中添加权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />

我已经拥有了所有的权限,即使对于getExternalFilesDirs,也不需要权限。 - Martin Vandzura
自从Android KitKat版本以后,调用getExternalFilesDirs()方法不需要任何权限。 - Simon-Droid

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