AndroidUtilCode icon indicating copy to clipboard operation
AndroidUtilCode copied to clipboard

SDCardUtils.getSDCardInfo android11 targetsdk30 报错

Open smallgirl opened this issue 4 years ago • 1 comments

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

smallgirl avatar May 06 '21 10:05 smallgirl

验证OK了吗

tianxiatianshan avatar Nov 11 '22 02:11 tianxiatianshan