我使用以下代码检查 SD 卡是否可用,但在运行 Android 4.x 及更高版本的三星 Galaxy II 和 Note 设备上,即使实际上设备上没有 SD 卡,操作系统也会模拟拥有 SD 卡。
private boolean isSDCardAvailable() {
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}
如果 SD 卡可用,则调用 getExternalCacheDir() 获取目录,否则我向用户显示错误并调用 getCacheDir() 以使用内部存储。
上面的方法返回 TRUE 和 ALL 设备,即使它们没有 SD 卡。