初めてここに投稿働いていない私は、私は右のそれを行う願っています。私はSDカードをデバイスから削除されたときを検出しようとしている、私の放送受信機は、古いICSタブレット上で正常に動作しますアンドロイドでなく、他のタブレットでは(私はMEDIA_UNMOUNTED、BAD_REMOVALなど、目的のアクションを取得することができますよ) 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;
}
}
};
? –
私はプログラム的にすべてをやっていたので、マニフェストには何も追加していませんでした。それは古い4.0タブレットで動作するようです。私もそこで何かすべきか? –
はい、ブロードキャストレシーバをマニフェストに登録する必要があります。私は1秒に答えます。 –