【发布时间】:2017-04-27 13:17:44
【问题描述】:
我正在尝试在我的 android 设备的外部存储 (sdcard) 中创建一个文件,并在该文件中执行读写操作。但我无法通过我的应用程序访问 sdcard。
我正在使用安卓棉花糖。
我在我的清单中给予许可:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
当我使用Environment.getExternalStorageDirectory() 时,它会给我/storage/emulated/0 路径,我可以在其中成功读写。
但我想在安装在/storage/6161-3432 的外部 SD 卡中执行读写操作。而且我无法执行这样的操作。
我也尝试使用可以打开文件并在特定路径中执行操作的 JNI 代码。在这里我也可以访问我的/storage/emulated/0 路径,但不能访问我的 sdcard 路径/storage/6161-3432。
那么如何使用我的应用程序访问外部 SD 卡?
【问题讨论】:
-
您用于测试应用程序的操作系统版本是什么?如果您的模拟器/设备的操作系统大于 23>=,那么您必须动态分配权限。
-
assign the permission dynamically。没有什么可分配的。您需要代码来要求应用的用户确认权限。 -
i want to perform read and write in my external sdcard。如果您使用其中一个答案,您将只能在 sd 卡的特定目录中读写。对于卡片的其余部分,您只能阅读。无需权限。 -
我在这里有一个更新,我使用运行时权限进行外部存储,但我无法通过我的应用程序在 SD 卡内创建任何文件/文件夹。当我为我的 SD 卡使用硬代码路径时,似乎应用程序可以读取 SD 卡路径但无法创建新文件。我可以通过
adb shell创建文件/文件夹。所以我不知道为什么我不能从我的应用程序创建文件。
标签: android file-io java-native-interface android-6.0-marshmallow