【发布时间】:2016-10-08 20:16:17
【问题描述】:
我正在尝试使用 C++ Android NDK 遍历 SD 卡中的文件,只是为了让用户在他的设备中选择一个文件,我使用的是 dirent.h 标头,我从java用方法Environment.getExternalStorageDirectory()
当我在具有 Android 4.4.2 的 BlueStacks(在 Windows 10 上)上对其进行测试时,该函数会正确读取文件名,但是当我在具有 Android 7 的 Nexus 6p 上对其进行测试时,它会失败,并且它给了我 errno = 13,这意味着:
#define EACCES 13 /* Permission denied */
在下面的帖子中,我可以找到发生这种情况的原因。
https://stackoverflow.com/a/36336679/5166295
那么,是否有任何以编程方式启用该选项的方法?
这只是在我调试应用程序时,并且在最终版本(带有 APK)中这会消失吗?
或者,有什么方法可以获取原始路径而不是符号链接?
或者,我是否必须告诉我的用户手动启用该选项?
【问题讨论】:
-
你的清单文件中有
uses-permission READ_EXTERNAL_STORAGE吗? -
是的,我有 READ 和 WRITE
-
READ是无用的,因为WRITE意味着READ。
标签: java android path filepath