从marshmallow开始,android允许用户使用sdcard作为采用的存储。
我需要弄清楚SD卡是否被用作采用的媒体,我需要用标准的Android SDK获取这些信息(换句话说,它必须在标准的Android设备上运行,所以我不能假设root access)。
当SD卡用作外部媒体时:
File[] externalDirs = ContextCompat.getExternalFilesDirs(context, null); >>> length = 2
Environment.isExternalStorageRemovable(externalDirs[1]); >>> returns true
Environment.isExternalStorageEmulated(externalDirs[1]); >>> returns false
((StorageManager)context.getSystemService(Context.STORAGE_SERVICE)).getStorageVolumes().get(1).isPrimary() >>> returns false
当sdcard被用作采用的媒体时:
File[] externalDirs = ContextCompat.getExternalFilesDirs(context, null); >>> length = 1
Environment.isExternalStorageRemovable(externalDirs[0]); >>> returns false
Environment.isExternalStorageEmulated(externalDirs[0]); >>> returns true
((StorageManager)context.getSystemService(Context.STORAGE_SERVICE)).getStorageVolumes().get(0).isPrimary() >>> returns true
我如何知道我的SD卡何时作为已采用的存储空间?