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()。
我有带目录路径的字符串。
我想以编程方式检查:路径在内部或外部设备内存中?
在 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()。