gpt4 book ai didi

android - 无法访问辅助存储(外部可移动微型 SD 卡)

转载 作者:行者123 更新时间:2023-11-29 02:23:05 26 4
gpt4 key购买 nike

看真题前请看我的问题介绍:

In Android there are an internal storage and an external storage. Don't be confused, because the internal storage relates to files that are accessible only by the app, and the external storage relates to normal files that can be accessed by all apps and can be found both in the real internal storage card (the phone's sd card) and in the real external storage card (the removable micro sd card).

My path of the phone's sd card (the one that you can't remove) is: /storage/emulated/0.
My path of the micro sd card (the one that you can insert or remove) is: /storage/external_SD.

Please note: When I use Environment.getExternalStorageDirectory().getPath() i get: /storage/emulated/0.
This is the path of the real internal storage card (the phone's sd card) and not the real external storage card (the removable micro sd card).

我的问题是我可以写入“真正的内部存储卡”(手机的 SD 卡),但不能写入“真正的外部存储卡”(可移动的微型 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 的参数中,这样它将在 micro sd 卡上保存文件“test.txt”,但我的应用程序崩溃了什么也没发生!
此外,我也尝试创建一个文件夹,但没有成功。

但是,当我 Handlebars 机sd卡的路径放上去的时候,就可以了!
还可以创建文件夹。

但是我需要在micro sd卡上写文件。

在给我答复之前请注意以下事项:
1) 我在 list 中添加了以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2) 在试用该应用程序之前,我曾尝试断开计算机的电缆连接。
3) 我试过禁用 Debug模式。
4) 我尝试了另一张微型 SD 卡。
5) 我的智能手机是 LG Optimus L7 (LG P714)。
6) 我有 Android KitKat (4.4.2)。
7) 当我在另一部智能手机 (Samsung Galaxy S3) 上尝试该应用程序时,当我将文件保存到 micro sd 卡时它仍然崩溃,但当我保存文件夹时它成功了!

有谁知道是什么问题吗?

最佳答案

My problem is that I can write to the "real internal storage card" (the phone's sd card) but not to the "real external storage card" (the removable micro sd card)

自大约四年前发布的 Android 4.4 以来就是这种情况。

But I need to write files on the micro sd card.

您可以在 Context 上使用 getExternalFilesDirs()getExternalCacheDirs()getExternalMediaDirs()。请注意这些方法名称的复数形式。如果这些返回 2+ 项,则第二项和后续项是可移动存储上的位置,对您的应用而言是唯一的,您可以从中读取和写入。

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

关于android - 无法访问辅助存储(外部可移动微型 SD 卡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54011400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com