Android 11 获取U盘路径
时间: 2023-08-18 08:29:40 浏览: 123
在Android 11中,可以通过StorageVolume API来获取外部存储设备的路径,包括U盘。以下是获取U盘路径的示例代码:
```java
// 获取StorageManager实例
StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
// 获取所有可用的存储卷
List<StorageVolume> storageVolumes = storageManager.getStorageVolumes();
// 遍历所有存储卷,找到U盘
for (StorageVolume storageVolume : storageVolumes) {
// 判断当前存储卷是否是可移动存储设备
if (storageVolume.isRemovable()) {
// 获取U盘的路径
String path = storageVolume.getDirectory().getPath();
Log.d(TAG, "U盘路径:" + path);
}
}
```
需要注意的是,为了访问外部存储设备,需要在AndroidManifest.xml文件中添加如下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
```
同时,需要在Android 11及以上版本中添加如下请求用户授权的代码:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
```
这样,当应用程序需要访问外部存储设备时,会提示用户授权。