在android 4.0中写入外部SD卡的权限

时间:2012-09-07 12:24:39

标签: android xml permissions android-sdcard

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

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

3 个答案:

答案 0 :(得分: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;
    }

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

String externalStorageState = Environment.getExternalStorageState();

然后您可以使用

检查此状态

Environment.MEDIA_MOUNTED(externalStorageState)和/或Environment.MEDIA_MOUNTED_READ_ONLY(externalStorageState)