AndroidUtilCode
AndroidUtilCode copied to clipboard
SDCardUtils.getSDCardInfo android11 targetsdk30 报错
SDCardUtils.getSDCardInfo方法在 android11手机 targetSdk30 报错 targetSdk28 正常 java.lang.NoSuchMethodException: android.os.storage.StorageVolume.getPath [] android11 getPath 方法被移除了 提供了getDirectory 应该使用storageVolume.getDirectory().getAbsolutePath()
Method getPathMethod = null;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
getPathMethod = StorageVolume.class.getMethod("getPath");
}
for (StorageVolume storageVolume : storageVolumes) {
boolean isRemovable = storageVolume.isRemovable();
String state = storageVolume.getState();
String path;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
path = storageVolume.getDirectory().getAbsolutePath();
} else {
path = (String) getPathMethod.invoke(storageVolume);
}
paths.add(new SDCardInfo(path, state, isRemovable));
}
验证OK了吗