【发布时间】:2020-01-27 07:51:59
【问题描述】:
Android 6.0及以上,无法编译以下代码。
无法导入android.os.storage.VolumeInfo
需要从 getVolumes() API 获取 volumeInfos。
下面是代码。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
StorageManager sm = ctx.getSystemService(StorageManager.class);
List<VolumeInfo> volumeInfos = sm.getVolumes();
for (VolumeInfo vol : volumeInfos) {
if(vol.type==VolumeInfo.TYPE_PUBLIC
&& (vol.state==VolumeInfo.STATE_MOUNTED || vol.state==VolumeInfo.STATE_MOUNTED_READ_ONLY)){
String desc = sm.getBestVolumeDescription(vol);
boolean isSdCard = desc.toLowerCase().contains("sd");
list.add(new StorageInfo(vol.path, true, isSdCard, vol.fsUuid, vol.fsLabel, desc, isSdCard?0:usbCounter++));
}
}
return list;
}
【问题讨论】:
-
Build.VERSION_CODES.M更改为Build.VERSION_CODES.N。
标签: android android-6.0-marshmallow volume