在Android

时间:2016-07-12 09:31:29

标签: java android io storage

如何在android中获取extSdcard路径?

有2个存储空间,第一个外部存储空间,所有手机都有,但第二个存储空间称为可移动存储空间(micro sdcard)。

我想在android中获取micro sdcard的路径,这怎么可能?

4 个答案:

答案 0 :(得分:2)

从KitKat开始,您可以访问获取该目录的方法:

Context.getExternalFilesDirs()

请注意,如果在访问期间未安装或移动SD卡,它可能会返回null。此外,您可能需要将这些权限添加到清单文件中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

显然有些用户在使用此方法时遇到问题,而不是返回SD卡路径。我找到了一些关于它如何工作的有用信息以及它如何取决于this post上的设备。

答案 1 :(得分:2)

检查此https://developer.android.com/guide/topics/data/data-storage.html#filesExternal以获取完整参考,因为您需要定义读取和写入外部SD的权限,上述链接中还有代码可在执行任何操作之前检查SD卡是否可用

答案 2 :(得分:0)

以下适用于我!

File[] Dirs = ContextCompat.getExternalFilesDirs(this.getApplicationContext(), null);
File path = (Dirs[1]);
String pathSD = Dirs[1].toString();
int firstOpen = pathSD.indexOf("/");
int secondOpen = pathSD.indexOf("/", firstOpen + 1);
int thirdOpen = pathSD.indexOf("/", secondOpen + 1);
String filename = pathSD.substring(firstOpen, thirdOpen + 1);
path = new File(filename);

答案 3 :(得分:0)