如何在android中获取extSdcard路径?
有2个存储空间,第一个外部存储空间,所有手机都有,但第二个存储空间称为可移动存储空间(micro sdcard)。
我想在android中获取micro sdcard的路径,这怎么可能?
答案 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)
从API级别24开始,您可以使用StorageManager类:
https://developer.android.com/reference/android/os/storage/StorageManager#getStorageVolumes()