Environment.isExternalStorageRemovable()
在API 11中添加了Environment.isExternalStorageEmulated()
isExternalStorageRemovable
的路径可移动或不移动时, getExternalStorageDirectory
返回true,更像是SD卡,如果返回false,则其内部存储空间永远无法移除。
而isExternalStorageEmulated
正好与isExternalStorageRemovable
相反?
现在,我的问题是什么区别?它只是具有相反输出的不同名称吗?
答案 0 :(得分:6)
isExternalStorageEmulated() == true
表示没有真正的SD卡,只是模拟(例如Nexus 5)。如果外部存储未被模拟isExternalStorageEmulated() == false
那么它可以是可移动的,也可以不是,这就是为什么我们有isExternalStorageRemovable()
答案 1 :(得分:0)
来自Android文档:
isExternalStorageEmulated
返回是否模拟主要的共享/外部存储介质。
isExternalStorageRemovable
返回主要的共享/外部存储媒体是否在物理上可移动。
这意味着两者可以在某些方面告诉您同一件事。
模拟存储设备的内容由私有用户数据分区支持
API 21还支持路径参数,而不是假定使用主外部存储,但是关于这两种方法使用背后的逻辑,文档几乎相同。
实际上,它可能归结为哪种情况会反转您的条件,您选择定位的API或物理sdcard是否与您的使用相关(例如,具有可移动存储和仿真存储的Samsung设备)。 / p>