繁体   English   中英

Android,不备份到外部SD卡(/ storage / sdcard1 /)

[英]Android ,No backup to the extern sd card (/storage/sdcard1/)

我正在尝试在以下路径中将文件保存在SD卡中。

Environment.getExternalStorageDirectory().getAbsolutePath() + dir + filename

如果已安装sd卡状态。

String state = Environment.getExternalStorageState();

我的一位用户抱怨

    No backup to the extern sd card (/storage/sdcard1/)

Galaxy Tab2 10.1中出现了此问题。 我有点困惑,我有联系4,那里只有内部记忆。 并在S4,s3和note 3中验证了相同的效果。 希望我将文件保存在正确的路径下,并在所有设备上都能正常工作。

我该如何解决投诉? 有什么事吗?

SD卡可能尚未准备好。 如下所示,考虑在写入外部存储之前等待其准备就绪。

// Wait till external storage is initialized upon startup. 
private void awaitExternalStorageInitialization() {
    boolean mExternalStorageAvailable = false;
    boolean mExternalStorageWriteable = false;
    int count = 0;

    do {
        String state = Environment.getExternalStorageState();
        if(count > 0) {
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                Logger.log(e.getMessage(), Logger.LogType.ERROR, e);
            }
        }

        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;
        }
        count++;
    } while ((!mExternalStorageAvailable) && (!mExternalStorageWriteable) 
            && (count < 15));

    if(!mExternalStorageWriteable)
        Logger.log("External storage not ready yet", Logger.LogType.ERROR, null);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM