在阅读真正的问题之前,请阅读我的问题介绍:
在Android中有一个
internal storage
和一个external storage
。不要混淆,因为它们internal storage
与只有应用程序可以访问的文件有关,而与external storage
所有应用程序都可以访问的普通文件有关,并且可以在真实的内部存储卡(手机的 sd 卡)和在真正的外部存储卡(可移动 micro sd 卡)中。我手机sd卡的路径(不能删除的那个)是:
/storage/emulated/0
.
我的micro sd卡(您可以插入或移除的)的路径是:/storage/external_SD
.请注意:当我使用时,
Environment.getExternalStorageDirectory().getPath()
我得到:/storage/emulated/0
。
这是真正的内部存储卡(手机的 sd 卡)而不是真正的外部存储卡(可移动 micro sd 卡)的路径。
我的问题是我可以写入“真正的内部存储卡”(手机的 sd 卡),但不能写入“真正的外部存储卡”(可移动 micro sd 卡)。我需要将文件保存在 micro sd 卡上。
我尝试了以下事情:
FileOutputStream fos;
1)fos = new FileOutputStream(System.getenv("SECONDARY_STORAGE") + "/test.txt");
2)fos = new FileOutputStream("/storage/external_SD/test.txt");
在这两种方式中,我将 micro sd 卡的路径放在FileOutputStream的参数中,这样它就会将文件“test.txt”保存在 micro sd 卡上,但是我的应用程序崩溃并且没有任何反应!
另外,我也尝试创建一个文件夹,但没有成功。
但是,当我把手机的sd卡的路径,它的工作原理!
而且文件夹创建工作。
但我需要在 micro sd 卡上写入文件。
在给我答案之前,请注意以下事项:
1)我在清单中设置了以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2)在尝试应用程序之前,我曾尝试断开电缆与计算机的连接。
3)我尝试禁用调试模式。
4)我尝试了另一张微型 SD 卡。
5) 我的智能手机是 LG Optimus L7 (LG P714)。
6) 我有 Android KitKat (4.4.2)。
7)当我在另一部智能手机(三星Galaxy S3)上尝试该应用程序时,当我将文件保存在micro sd卡上时它仍然崩溃,但是当我保存一个文件夹时它成功了!
有谁知道是什么问题?