0
  1. 我已给予必要的许可: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  2. 将路径硬编码为"/sdcard/filename".

我猜 Nexus 没有外部 SD 支持,但 S2 有,我认为这可能会导致获取路径出现问题。我该如何优雅地处理这种情况?

4

2 回答 2

5

在每个 Android 设备上,您都可以像这样获取外部存储的路径

Environment.getExternalStorageDirectory()

我有一个 Nexus 设备,它可以工作——也在我的旧里程碑上

于 2012-06-20T11:49:35.587 回答
0

这是创建自己的应用程序目录的示例用法:

您应始终检查 SD 卡是否可用,因为它可以安装/连接到计算机或从设备中移除。

private void SetDirectory() {
        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {

            extStorageDirectory = Environment.getExternalStorageDirectory().toString();
            File dbDirectory = new File(extStorageDirectory + "/yourAppName/whatever/");
            myDirectory.mkdirs();// Have the object build the directory

        } else if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) {

            //TODO Make some kind of allert or Toast to warn/notify the user that the SDcard is needed.
        }

    }

您可以使用该android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)方法检查该卡是否在您的应用程序中的任何位置可用。

于 2012-06-20T21:59:51.893 回答