弄清楚仓库是采用还是外部

时间:2017-11-23 20:55:33

标签: android

从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卡何时作为已采用的存储空间?

0 个答案:

没有答案