我正在开发一个简单的应用程序,它应该能够访问来自内部存储和外部存储(可移动卡)的文件,如 Micro SD 卡(当用户插入 SDCARD 时)。

(不是设备附带的内部 SD 卡,我知道它可以使用Environment.getExternalStorageDirectory() )

是否可以查明用户是否已将 SD 卡插入设备?
如果是,是否可以获取该 SD CARD 的路径?

我发现硬编码路径不是一个好的选择,因为不同的设备对于用户插入的 sdcard 有不同的路径。

很感谢任何形式的帮助。
谢谢你。

最佳答案



Android 仅将可移动存储介质(例如 SD 卡)或内部(不可移动)存储视为外部存储。

以下是表单 developer.android.com



要检查 SDCard 的可用性,您可以使用以下代码。

private boolean isExternalStorageAvailable() {

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

        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;
        }

        if (mExternalStorageAvailable == true
                && mExternalStorageWriteable == true) {
            return true;
        } else {
            return false;
        }
    }

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

10-07 19:09
查看更多