首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问二级存储器(外部可移动微sd卡)

无法访问二级存储器(外部可移动微sd卡)
EN

Stack Overflow用户
提问于 2017-11-04 13:25:33
回答 1查看 1.4K关注 0票数 0

在阅读真正的问题之前,请先阅读我的问题简介:

在安卓系统中有internal storageexternal storage。不要混淆,因为internal storage涉及到只有应用程序可以访问的文件,而external storage涉及所有应用程序都可以访问的普通文件,这些文件可以在实际的内部存储卡(电话的sd卡)和实际的外部存储卡(可移动的微sd卡)中找到。 我的手机sd卡的路径(你不能删除)是:/storage/emulated/0。 我的微sd卡的路径(您可以插入或删除)是:/storage/external_SD请注意:当我使用Environment.getExternalStorageDirectory().getPath()时,我得到:/storage/emulated/0。 这是真正的内部存储卡(手机的sd卡)的路径,而不是真正的外部存储卡(可移动的微sd卡)。

我的问题是,我可以写到“真正的内部存储卡”(手机的sd卡),但不能写到“真正的外部存储卡”(可移动的微型sd卡)。我需要把文件保存在微型sd卡上。

我尝试了以下几点:

FileOutputStream fos;

1) fos = new FileOutputStream(System.getenv("SECONDARY_STORAGE") + "/test.txt");

2) fos = new FileOutputStream("/storage/external_SD/test.txt");

在这两种方式中,我把微sd卡的路径放在FileOutputStream的参数上,这样它就可以在微sd卡上保存文件'test.txt‘,但是我的应用程序崩溃了,什么也没发生!

此外,我还试图创建一个文件夹,但它没有工作。

然而,当我把路径的手机的sd卡,它的工作!

还有文件夹创建工程。

但我需要在微型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)我有安卓KitKat (4.4.2)。

7)当我在另一款智能手机(三星Galaxy S3)上试用这个应用程序时,当我将文件保存在微型sd卡上时,它仍然崩溃,但当我保存一个文件夹时,它成功了!

有人知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-04 13:31:52

我的问题是,我可以写到“真正的内部存储卡”(手机的sd卡),但不能写到“真正的外部存储卡”(可移动的微型sd卡)。

自从大约四年前发布的Android4.4以来,情况就一直如此。

但我需要在微型sd卡上写文件。

您可以在getExternalFilesDirs()getExternalCacheDirs()getExternalMediaDirs()上使用Context。注意这些方法名称的复数形式。如果这些返回2+项,那么第二个和后续的是可移动存储的位置,是您的应用程序特有的位置,您可以从中读取和写入。

或者,使用存储访问框架并让用户选择将内容放在哪里,在那里使用带有ContentResolveropenOuptutStream()的结果Uri来写入该位置。这将允许用户使用外部存储、可移动存储以及第三方应用程序(Google、SMB/CIFS文件服务器等)支持的位置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47111244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档