Android:以编程方式检查外部或内部类型的目录路径

Android: programmatically check directory path for external or internal type

我有带目录路径的字符串。
我想以编程方式检查:路径在内部或外部设备内存中?

在 Phone 上 3.0+ :- 将字符串与

进行比较
Environment.getExternalStorageDirectory() 

如果匹配并检查 Environment.isExternalStorageEmulated() 如果两者都为真则它是内部存储否则是外部存储

姜饼 2.3 及以下版本:-

Environment.getExternalStorageDirectory() 

return外部存储路径,因为没有仿真,所以如果比较成功,则为外部存储,否则为内部

你可以看看哪个是外部路径,哪个是内部路径。 对于外部路径,你可以使用这个:

String secStore = System.getenv("SECONDARY_STORAGE");

对于内部路径,这个:

String extStore = System.getenv("EXTERNAL_STORAGE");

之后你可以比较你的路径来检查它在哪里。

完整信息来自@ankitagrawal 和@Corina Gheorghe 的帖子。

正如我所见,getenv("SECONDARY_STORAGE") 给出了与 getExternalStorageDirectory() 不同的结果。

在我的设备中

对于根目录中的路径:

1) /storage/sdcard1

Android/data/APPNAME/files 中的路径:

2) /storage/emulated/legacy

有必要检查两个外部路径。
第一种方法不像第二种方法那样依赖于 3.0+ 中的 isExternalStorageEmulated()。