第一次發佈這裏我希望我做對了。我試圖檢測SD卡何時從設備上移除,我的廣播接收器可以在舊ICS平板電腦上正常工作(我可以獲得MEDIA_UNMOUNTED,BAD_REMOVAL等意圖操作),但在另一臺平板電腦上使用android 4.2沒有任何反應,當我取出SD卡,沒有任何意圖如下動作被廣播:SD卡移除意圖不起作用
MEDIA_BAD_REMOVAL
MEDIA_EJECT
MEDIA_REMOVED
MEDIA_UNMOUNTED
我只找到1個相關問題這在這裏,但溶液加入,我已經嘗試過dataScheme「文件」。這裏是我的代碼:
private BroadcastReceiver deviceCardsBroadcastReceiver;
private IntentFilter sdCardIntentFilter;
sdCardIntentFilter = new IntentFilter();
sdCardIntentFilter.addAction(MEDIA_REMOVED);
sdCardIntentFilter.addAction(MEDIA_UNMOUNTED);
sdCardIntentFilter.addAction(MEDIA_BAD_REMOVAL);
sdCardIntentFilter.addAction(MEDIA_EJECT);
sdCardIntentFilter.addDataScheme("file");
registerReceiver(deviceCardsBroadcastReceiver, sdCardIntentFilter);
deviceCardsBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch (intent.getAction()) {
case MEDIA_BAD_REMOVAL:
case MEDIA_EJECT:
case MEDIA_REMOVED:
case MEDIA_UNMOUNTED:
Log.i("SD CARD REMOVED");
break;
default:
break;
}
}
};
你的清單是怎樣的? –
我沒有在清單中添加任何東西,因爲我在做所有programmaticaly,並且它似乎在舊4.0平板電腦中工作。我應該做些什麼嗎? –
是的,您必須在清單中註冊'BroadcastReceiver'。我會回答一秒。 –