【发布时间】:2016-02-02 17:28:23
【问题描述】:
我有带有目录路径的字符串。
我想以编程方式检查:路径是在内部还是外部设备内存中?
【问题讨论】:
-
感谢 -1。下面的信息对你来说很明显吗?尤其是来自@ankitagrawal 帖子的 isExternalStorageEmulated()?
标签: android path filesystems
我有带有目录路径的字符串。
我想以编程方式检查:路径是在内部还是外部设备内存中?
【问题讨论】:
标签: android path filesystems
在 3.0+ 的手机上:- 比较字符串与
Environment.getExternalStorageDirectory()
如果匹配并检查 Environment.isExternalStorageEmulated() 如果两者都为真,则它是内部存储,否则是外部存储
姜饼 2.3 及以下版本:-
Environment.getExternalStorageDirectory()
返回外部存储路径,因为没有仿真,所以如果比较成功,则为外部存储,否则为内部
【讨论】:
您可以找出哪个是外部路径和内部路径。 对于外部路径,您可以使用:
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() 。
【讨论】: