Android 11 获取U盘路径
时间: 2023-08-18 19:29:47 浏览: 291
在 11中,为了提高存储访问的安全性,应用程序不能再直接访问外部存储设备上的文件。因此,如果您想要在Android 11中获取U盘路径,需要使用其他方式。
以下是获取U盘路径的示例代码:
```
StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
StorageVolume[] storageVolumes = storageManager.getStorageVolumes();
for (StorageVolume volume : storageVolumes) {
if (volume.isRemovable() && volume.getState().equals(Environment.MEDIA_MOUNTED)) {
File file = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
file = volume.getDirectory();
} else {
String path = volume.getPath();
file = new File(path);
}
// 此处即可获得U盘路径
String path = file.getAbsolutePath();
break;
}
}
```
以上代码中,我们首先通过getStorageVolumes()方法获取StorageVolume对象列表,然后遍历该列表,找到可移除的已挂载状态的StorageVolume对象,最后调用getDirectory()方法获取U盘路径。如果当前设备的Android版本低于Android Q,我们需要通过getPath()方法获取U盘路径。
需要注意的是,Android 11中的存储访问权限发生了变化,如果您想要访问外部存储设备上的文件,需要使用新的存储访问框架。您可以使用MediaStore等类来实现这一目的。
阅读全文