我用 SD 资源开发游戏。当我将设备作为 MASS STORAGE 连接时,设备崩溃。这是因为当我将设备作为大容量存储设备插入 PC 时,设备无法访问 SD 卡。所以我尝试了不同的方法来解决。
目前我正在实现一个广播接收器,我正在处理动作 ACTION_MEDIA_BAD_REMOVAL(如果手动移除 SD 卡)和 ACTION_MEDIA_SHARED(如果设备作为大容量存储连接,它应该处理动作,但它没有)。
当检测到这两个操作时,我会发送一条错误消息并完成应用程序。
当我手动移除 SD 卡时,它可以工作,但不能作为大容量存储。
同样在每一帧上,我都会使用这种方法检查每一帧上的 SD 卡是否在设备上。
public int hasSDCard()
{
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
return 1;
return 0;
}
什么时候是 0 它没有 SD 卡,我也发送错误消息并完成应用程序。
但 Stills 在 USB 大容量存储模式下不起作用。
我的问题是:如何检测设备何时连接为 USB 大容量存储?
我应该使用哪些类?
我可以实现哪些侦听器来调用我的错误消息活动并完成我的应用程序?