0

我在尝试将文件写入外部 SD 卡时遇到问题android 4.0.3,即使我已经使用了WRITE_EXTERNAL_STORAGE&之类的写权限WRITE_MEDIA_STORAGE,所以我找到了另一种方法来处理它,但现在我想知道我的应用程序是否是否可以写入可移动 SD 卡,如果没有,那么我想切换到内部 SD 卡。

所以现在的问题是我如何知道是否支持写入可移动 SD 卡,所以如果有人做过类似的实现,请随时在这里分享代码。

4

3 回答 3

1

直接从 API 指南回答:

http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

    boolean mExternalStorageAvailable = false;
    boolean mExternalStorageWriteable = false;
    String state = Environment.getExternalStorageState();

    if (Environment.MEDIA_MOUNTED.equals(state)) {
        // We can read and write the media
        mExternalStorageAvailable = mExternalStorageWriteable = true;
    } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        // We can only read the media
        mExternalStorageAvailable = true;
        mExternalStorageWriteable = false;
    } else {
        // Something else is wrong. It may be one of many other states, but all we need
        //  to know is we can neither read nor write
        mExternalStorageAvailable = mExternalStorageWriteable = false;
    }
于 2012-09-07T12:33:46.973 回答
1

我有一个可以同时写入内部和外部 SD 卡的应用程序。我有 WRITE_EXTERNAL_STORAGE 权限,但没有别的。

处理外部SD卡的主要问题是找到路径,因为getExternalStorageDirectory()通常返回内部的。/mnt如果有帮助,它应该是 的子目录。

于 2012-09-07T12:54:06.573 回答
0

要查找是否可以写入 SD 卡,请查看该Environment课程。

String externalStorageState = Environment.getExternalStorageState();

然后您可以使用检查此状态

Environment.MEDIA_MOUNTED(externalStorageState)和/或Environment.MEDIA_MOUNTED_READ_ONLY(外部存储状态)

于 2012-09-07T12:37:07.647 回答