【问题标题】:Best way to know sd card Path Android了解 sd 卡路径 Android 的最佳方法
【发布时间】:2013-10-08 13:05:07
【问题描述】:

我需要知道大多数设备中的 sd 卡路径。我有一些实际使用的问题:

 Environment.getExternalStorageDirectory();

但是有些手机没有返回正确的路径……我不知道为什么。

检查不同设备和操作系统版本的 SD 卡路径的最佳方法是什么?

【问题讨论】:

    标签: java android


    【解决方案1】:

    Android 中没有“sd 卡路径”。

    目前,Android 有内部存储和外部存储之分,仅此而已。 Environment.getExternalStorageDirectory(); 返回外部存储的根。是否外置存储:

    • 在用于内部存储的板载闪存的同一分区上,或
    • 在板载闪存的单独分区上,或
    • 是一些可移动驱动器,例如 microSD 卡,或者
    • 完全是另外一回事

    取决于设备制造商。

    同样,如果设备制造商提供额外的数据存储(例如,除了作为板载闪存的一部分的外部存储之外的可移动卡),目前,这些额外的数据存储仅供设备制造商使用。该制造商可能会选择记录您如何使用它们,或者制造商可能会将这些数据存储与您可以访问的其他内容集成(例如,通过索引和通过MediaStore 访问多媒体文件)。

    您可以在the documentation on external storage 中阅读更多相关信息。

    因此,根据定义,Environment.getExternalStorageDirectory(); 是代表外部存储的“正确路径”。

    【讨论】:

      【解决方案2】:

      我认为这是最好的...

       Cursor cursor = getContentResolver().query(_uri, new String[] { ndroid.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
                            cursor.moveToFirst();
      

      【讨论】:

        【解决方案3】:

        这始终是最好的方法:

        Environment.getExternalStorageDirectory();
        

        您还可以像这样获取所有 Android 设备上的环境变量:

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

        【讨论】:

        • 在某些手机上,getExternalStorageDirectory() 不会返回 SD 卡的路径。请参阅 CommonsWare 的答案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-22
        • 2018-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多