2017-04-27 122 views
0

我正尝试在我的android设备的外部存储(sdcard)中创建一个文件,并在该文件中执行读取和写入操作。但我无法通过我的应用程序访问SD卡。在Android应用程序中无法访问外部SD卡

我正在使用android棉花糖。

我给你许可我menifest:

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

当我使用Environment.getExternalStorageDirectory()它给我/storage/emulated/0路径,在这我可以成功读取和写入。

但我想执行读取和写入在我的外部SD卡上安装在/storage/6161-3432。并且我无法执行此类操作。

我也尝试用JNI代码,它可以打开文件并在特定路径中执行操作。在这里我也可以访问我的/storage/emulated/0路径,但不能访问我的SD卡路径/storage/6161-3432

那么我如何使用我的应用程序访问外部SD卡?

+0

什么是操作系统的版本你正在使用的测试应用程序?如果您的模拟器/设备操作系统大于23> =那么您必须动态分配权限。 –

+0

'动态分配权限'。没有什么可分配的。您需要代码才能让应用的用户确认权限。 – greenapps

+0

'我想执行读写我的外部sdcard'。如果您使用其中一个答案,您将只能在SD卡的特定目录中读写。对于卡片的其余部分,您只能阅读。没有需要的权限。 – greenapps

回答

1

使用下面的代码,它会给你一切可能的存储选项的列表在您的手机: -

File[] filesDirectory = context.getExternalFilesDirs(name); 
+0

谢谢你的回复。我试过你的方式,但'文件[] filesDirectory = context.getExternalFilesDirs(名称);'不工作在我的Android Studio。所以我使用File [] filesDirectory = getBaseContext()。getExternalFilesDirs(“/ storage/XXXX-XXXX”); \t \t \t \t对(INT I = 0; I Hiren

+0

正在测试哪个Android版本。 –

+0

或尝试使用File [] Dirs = ContextCompat.getExternalFilesDirs(MyApp.GetContext(),null); –