我们是以DV6300-T的平台来做测试的,发现有2种方式来检测android中external media(包括SD卡,USB)的状态。
一种是使用StorageListener监听,还有一种是使用广播的方式。
DV6300-T的存储设备相关分析:
相关的类主要有:
RecordDeviceManager
主要采用了观察者模式对设备拔插的监控来触发各种不同情况:
比如在DTVLauncher中就增加了观察者mRecordDeviceListener,在检测到设备拔出时候会停止时移或录制等。
第一种监测方式:
使用StorageManager
StorageManager mStorageManager = (StorageManager)context.getSystemServic(Context.STORAGE_SERVICE);
mStorageManager.registerListener(mStorageListener);
IMountService mMountService = IMountService.Stub.asInterface(ServiceManager.getService("mount"));
StorageEventListener mStorageListener = new StorageEventListener() {