gpt4 book ai didi

android - Android 的外部 SDCard 文件路径

转载 作者:可可西里 更新时间:2023-11-01 18:45:47 29 4
gpt4 key购买 nike

Android 设备上外部 SDCard 的文件路径是否总是"/storage/extSdCard"?如果不是,有多少变化?

我的应用程序需要它来测试外部 SDCard 的可用性。

我正在使用 Titanium,它有一个方法 Titanium.Filesystem.isExternalStoragePresent( )但即使未安装外部 SDCard,它也始终返回 true。

我认为它在本地存储中检测到 SDCard,因此返回 true。但我真正想要的是检测是否安装了物理 SDCard。

我可以通过单独检测文件 "/storage/extSdCard" 的存在来做到这一点吗?

谢谢。

最佳答案

Is it true that the file path to external SDCard on Android devices are always "/storage/extSdCard"? If not, how many variations are there?

遗憾的是,根据制造商的说法,外部存储的路径并不总是相同的。使用 Environment.getExternalStorageDirectory() 将返回 SD 卡的正常路径,即 mnt/sdcard/。但以三星设备为例,SD 卡路径要么在 mnt/extSdCard/ 下,要么在 mnt/external_sd/ 下。

因此,一种继续进行的方法是根据每个制造商使用的路径检查外部目录是否存在。像这样:

mExternalDirectory = Environment.getExternalStorageDirectory()
.getAbsolutePath();
if (android.os.Build.DEVICE.contains("samsung")
|| android.os.Build.MANUFACTURER.contains("samsung")) {
File f = new File(Environment.getExternalStorageDirectory()
.getParent() + "/extSdCard" + "/myDirectory");
if (f.exists() && f.isDirectory()) {
mExternalDirectory = Environment.getExternalStorageDirectory()
.getParent() + "/extSdCard";
} else {
f = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/external_sd" + "/myDirectory");
if (f.exists() && f.isDirectory()) {
mExternalDirectory = Environment
.getExternalStorageDirectory().getAbsolutePath()
+ "/external_sd";
}
}
}

But what I really want is detect whether physical SDCard is mounted or not.

我还没有尝试代码,但是 Dmitriy Lozenko 在这个 answer 中的方法更有趣。 他的方法返回系统上所有安装的 SD 卡的路径,无论制造商如何

关于android - Android 的外部 SDCard 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23123461/

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