在 android 中获取可移动 SD 卡路径

get removable sd card path in android

如何在 android 中获取 extSdcard 路径?

有两个存储,第一个是所有手机都有的外部存储,第二个是移动存储(micro sdcard)。

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

从 KitKat 开始,您可以使用一种方法来获取该目录:

Context.getExternalFilesDirs()

注意,如果在访问过程中没有挂载或移动SD卡,它可能return为空。此外,您可能需要将这些权限添加到您的清单文件中:

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

显然有些用户在使用此方法时遇到了问题,而不是 return设置 SD 卡路径。我在 .

上找到了一些关于它如何工作以及如何不工作的有用信息,具体取决于设备

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

以下适合我!

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);

从 API 级别 24 开始,您可以使用 StorageManager class:

https://developer.android.com/reference/android/os/storage/StorageManager#getStorageVolumes()