【问题标题】:Android: programmatically check directory path for external or internal typeAndroid:以编程方式检查外部或内部类型的目录路径
【发布时间】:2016-02-02 17:28:23
【问题描述】:

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

【问题讨论】:

  • 感谢 -1。下面的信息对你来说很明显吗?尤其是来自@ankitagrawal 帖子的 isExternalStorageEmulated()?

标签: android path filesystems


【解决方案1】:

在 3.0+ 的手机上:- 比较字符串与

Environment.getExternalStorageDirectory() 

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

姜饼 2.3 及以下版本:-

Environment.getExternalStorageDirectory() 

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

【讨论】:

    【解决方案2】:

    您可以找出哪个是外部路径和内部路径。 对于外部路径,您可以使用:

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

    对于内部路径,这个:

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

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

    【讨论】:

      【解决方案3】:

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

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

      在我的设备中

      根目录路径:

      1) /storage/sdcard1
      

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

      2) /storage/emulated/legacy
      

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

      【讨论】:

        猜你喜欢
        • 2016-09-13
        • 1970-01-01
        • 2014-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-07
        • 2013-06-26
        相关资源
        最近更新 更多