在 Android 11 上使用不同的挂载命名空间
在 Android 11 中,每个应用程序都有自己的挂载命名空间,它可以控制应用程序在其文件系统中看到的内容。这意味着在 Android 11 上,不同的应用程序可以看到不同的文件系统内容,即使它们运行在相同的设备上。
要在 Android 11 上使用不同的挂载命名空间,您可以使用以下代码示例:
StorageManager storageManager = context.getSystemService(StorageManager.class);
StorageVolume[] storageVolumes = storageManager.getStorageVolumes();
for (StorageVolume storageVolume : storageVolumes) {
if (storageVolume.isEmulated()) {
continue;
}
final String derivedPath = storageVolume.getDirectory().getAbsolutePath();
int storageId = storageVolume.getStorageId();
storageManager.mount(derivedPath, storageId, null);
}
该示例代码将获取存储卷的列表,并将它们挂载到其对应的路径中。
需要注意的是,在 Android 11 上,您的应用程序必须有“android.permission.MANAGE_EXTERNAL_STORAGE”权限才能访问外部存储设备。