从SD卡读取数据的权限

14

您需要获取读取SD卡数据的权限吗?我找到了写入权限,但没有找到读取权限。

6个回答

37

别忘了添加

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

到你的清单文件中


你的回答需要更多的解释。它不是很清楚。 - eliasah
2
@Taylan:我们期望在这里得到的答案能够自我解释,而不仅仅是代码堆积。您应该解释一下导致所描述问题的原因以及为什么会出现这个问题;然后解释一下您的修复方法以及为什么它有效。 - Andrew Barber
18
嘿,他的回答已经很清楚明了了。它说明你需要在清单中请求更多的权限,并解释了如何操作。你对这个有什么理解上的困难吗? - user458577

17

2
目前它是未强制执行的,所以你实际上不需要它。但是最好还是这样做。你可以按照文档中描述的方式在开发者设置中启用强制执行。 - Timmmm
1
如果他包括写入权限,则无需包括读取权限。 - Lion789

3

2
根据您发布的链接,“为了在外部存储上读取或写入文件,您的应用程序必须获取READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE系统权限。” - Mihai Bujanca

0

关键在于你想要读取什么。如上所述,如果您正在阅读非应用程序创建的内容,则需要获得许可。某些设备也可以让您这样做,前提是设备上允许开发者选项。但最好在清单中包含它。

如果您只是使用相同的应用程序阅读自己编写的内容,则不需要明确许可。


0

如果您想要列出文件夹中的文件列表,则需要添加 WRITE_EXTERNAL_STORAGE 权限。


-2
在Linux系统中,如果您需要复制和粘贴较长的路径名,则可以切换到SD卡。尝试使用“sudo nano”或“sudo vi”,具体取决于您喜欢的编辑器。这使我能够读取那些我无法在SD卡上使用标准 GUI 文本编辑器打开的文件。
例如,使用GUI时,我尝试在SD卡上的/etc中打开passwd-file。图标上有一个小x。我的Linux编辑器Leafpad无法打开文件“/media/UserDrake/28d3774e-c2bd-486f-bde0-3cbb17d2317c/etc/passwd-”,因为权限被拒绝。但是,如果我使用终端先cd /,然后使用剪切和粘贴将路径复制到终端中(因为路径实际上很长而难以手动输入),我可以通过sudo nano "上述路径"来查看它。

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