- 我已给予必要的许可:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- 将路径硬编码为
"/sdcard/filename"
.
我猜 Nexus 没有外部 SD 支持,但 S2 有,我认为这可能会导致获取路径出现问题。我该如何优雅地处理这种情况?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
"/sdcard/filename"
.我猜 Nexus 没有外部 SD 支持,但 S2 有,我认为这可能会导致获取路径出现问题。我该如何优雅地处理这种情况?
在每个 Android 设备上,您都可以像这样获取外部存储的路径
Environment.getExternalStorageDirectory()
我有一个 Nexus 设备,它可以工作——也在我的旧里程碑上
这是创建自己的应用程序目录的示例用法:
您应始终检查 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)
方法检查该卡是否在您的应用程序中的任何位置可用。