【发布时间】:2017-11-06 12:14:52
【问题描述】:
我们查看了许多处理 SD 卡的 SO 帖子以及似乎是黄金标准的 SO 帖子 Gold Standard 但它涉及我们不询问权限的权限。该问题涉及寻找另一种方法来确定是否安装了 SD 卡。这个问题只想处理SDK 23+ 讨论FUSE的文章在这个链接FUSE
我们已经尝试过这段代码,当模拟器弹出 SD 卡时返回或评估为 TRUE。 SO 的其他类似配置也已经过测试。 我的问题不仅是如何检测 SD 卡是否已安装,而且为什么此代码会失败?我们不确定此代码是否可以在模拟器上进行测试,或者是否需要真实设备。我们认为此代码失败是因为术语“外部存储”的概念不是指实际的 SD 卡,而是指内部的辅助外部存储。
public boolean chkFORSDCARD() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
System.out.println("#################### IS ####### TRUE "+state);
return true;
}
System.out.println("##################### IS ###### Not Available "+state);
return false;
}
【问题讨论】:
-
不清楚你在问什么。该代码与 SD 卡无关。
-
@greenapps 我要问的是有没有办法确定 SD 卡是否已安装?并且此代码是否可以做出该决定。很高兴知道是否需要实际设备来测试代码。我很困惑,因为代码来自 Android 开发者网站,上面写着使用此代码来确定是否安装了 SD 卡
-
@greenapps 我们看过这篇 SO 帖子,Commons Ware 提供了关于 SD 卡路径的好建议 stackoverflow.com/questions/5694933/…
-
范围目录访问非常接近。但与 getExternalFilesDirs() 代码一样,无法区分 SD 卡和 USB 驱动器。自 Android 6 以来,SD 卡可以有两种使用方式,那么您到底想要什么?
-
你唯一能做的就是让用户指明 SD 卡。您可以使用 Scoped Directory Access 或 Intent.ACTION_OPEN_DOCUMENT_TREE。在这两种情况下,您都必须使用 content:// 方案。那时不能再使用 File 和 FileOutputStream 类。但这没有问题,因为对于那些类,卡是不可写的。我想知道你想用 SD 卡做什么。