在Android中检测可移动外部存储

时间:2016-01-27 06:43:10

标签: android storage

据我所知,有3种存储方式,

  1. 内部存储空间:它是私有的,没有人可以访问它。对于
    例如:File internalFile = new File(getFilesDir(), "MyFile.txt");
  2. 外部存储空间:不可移动。
    用于 例如:File externalFile = new File(Environment.getExternalStorageDirectory(), "MyFile.txt");
  3. 辅助外部存储:可以由用户安装或卸载。
  4. 我的问题是第三种存储方式。如何访问辅助SD卡?我搜索了几个小时,但没有找到答案。

2 个答案:

答案 0 :(得分:1)

只有两种类型,

  1. 内部存储
  2. 外部存储空间,可以移动(SD卡)或不可移动。
  3. 查看this guide了解详情。我希望它能满足你所​​需要的一切。

    您可以使用以下代码

    检测指南中指定的存储状态
    /* Checks if external storage is available for read and write */
    public boolean isExternalStorageWritable() {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            return true;
        }
        return false;
    }
    
    /* Checks if external storage is available to at least read */
    public boolean isExternalStorageReadable() {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state) ||
            Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            return true;
        }
        return false;
    }
    

答案 1 :(得分:0)

要检测SD卡的可用性,您可以这样做

    boolean mExtStorage = false;
    boolean mExtWriteable = false;
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        mExtStorage = mExtWriteable = true;
    } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        mExtStorage = true;
        mExtWriteable = false;
    } else {
        mExtStorage = mExtWriteable = false;
    }