私は、SDカードがUSB経由でコンピュータにディスクドライブとしてマウントされたとき、または手動で取り除かれたときを検出する必要のあるアプリケーションを作成しています。私はこの目的のために放送受信機を使ってみましたが、onReceiveは呼び出されていません。私のコードは以下の通りです。Android:SDカードがコンピュータにディスクドライブとしてマウントされたときに検出する
IntentFilter filter2 = new IntentFilter();
//filter2.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
filter2.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
filter2.addAction(Intent.ACTION_MEDIA_SHARED);
filter2.addAction(Intent.ACTION_MEDIA_REMOVED);
filter2.addAction(Intent.ACTION_MEDIA_MOUNTED);
registerReceiver(new CustomBroadcastReceiver(), filter2);
次のように私の放送受信機は、私はUSB経由でディスクドライブとして接続するときonReceive方法は発生しません
public class CustomBroadcastReceiver extends BroadcastReceiver{
public CustomBroadcastReceiver(){
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(Intent.ACTION_MEDIA_UNMOUNTED) || action.equals(Intent.ACTION_MEDIA_SHARED) || action.equals(Intent.ACTION_MEDIA_REMOVED)){
HardwareManager.IS_MEDIA_MOUNTED = false;
}else if(action.equals(Intent.ACTION_MEDIA_MOUNTED)){
HardwareManager.IS_MEDIA_MOUNTED = true;
}else if(action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)){
HardwareManager.IN_AIRPLANE_MODE = intent.getBooleanExtra("state", false);
}
}
}
...です。
私は間違っていますか?
これはAndroid NDKで可能でしょうか? –
私は分かりません。私はヒントがあればお知らせします。 – Chromium
私はACTION_UMS_CONNECTEDのリッスンはAPIバージョン8で動作し、android.os.storage.StorageEventListenerはそれ以降のバージョンのAPIでも動作すると思います。 –