我使用以下代码来检查SD卡是否可用,但是在运行Android 4.x的Samsung Galaxy II和Note设备上以及稍后操作系统模拟具有SD卡,即使实际上设备上没有SD卡也是如此.
private boolean isSDCardAvailable() {
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}
Run Code Online (Sandbox Code Playgroud)
如果SD卡可用,则调用getExternalCacheDir()获取我向用户显示错误的目录,并调用getCacheDir()以使用内部存储.
即使没有SD卡,上述方法也会返回TRUE和ALL设备.
自API级别11开始,此方法可用,它可以让您了解内部存储器是否可用作外部存储器.在某些设备中,getExternalStorageDirectory()即使SD卡不可用,也会返回true.阅读以下文档了解详情.
public static boolean isExternalStorageEmulated ()
Run Code Online (Sandbox Code Playgroud)
在API级别11中添加
返回设备是否具有模拟的外部存储设备.如果为true,则设备没有真正的外部存储,并且getExternalStorageDirectory()返回的目录将使用内部存储系统的一部分进行分配.
某些系统服务(例如程序包管理器)使用它来确定应用程序的安装位置.
仿真的外部存储也可以加密 - 有关其他详细信息,请参阅setStorageEncryption(android.content.ComponentName,boolean).
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |