isExternalStorageRemovable和isExternalStorageEmulated之间的区别

时间:2014-02-05 15:25:29

标签: android

API 9中添加了

Environment.isExternalStorageRemovable()

在API 11中添加了Environment.isExternalStorageEmulated()

isExternalStorageRemovable的路径可移动或不移动时,

getExternalStorageDirectory返回true,更像是SD卡,如果返回false,则其内部存储空间永远无法移除。

isExternalStorageEmulated正好与isExternalStorageRemovable相反?

现在,我的问题是什么区别?它只是具有相反输出的不同名称吗?

2 个答案:

答案 0 :(得分:6)

isExternalStorageEmulated() == true表示没有真正的SD卡,只是模拟(例如Nexus 5)。如果外部存储未被模拟isExternalStorageEmulated() == false那么它可以是可移动的,也可以不是,这就是为什么我们有isExternalStorageRemovable()

答案 1 :(得分:0)

来自Android文档:

isExternalStorageEmulated

  

返回是否模拟主要的共享/外部存储介质。

isExternalStorageRemovable

  

返回主要的共享/外部存储媒体是否在物理上可移动。

这意味着两者可以在某些方面告诉您同一件事。

  

模拟存储设备的内容由私有用户数据分区支持

API 21还支持路径参数,而不是假定使用主外部存储,但是关于这两种方法使用背后的逻辑,文档几乎相同。

实际上,它可能归结为哪种情况会反转您的条件,您选择定位的API或物理sdcard是否与您的使用相关(例如,具有可移动存储和仿真存储的Samsung设备)。 / p>