onReceiveで受け取る引数intentのdataにはマウントorリマウントされたストレージのパスが格納されています。
通知されるパスは下記のようなコードで確認できます。
private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Uri data = intent.getData(); String path = null; if (data != null) { path = data.getPath(); } android.util.Log.e("test", "path=" + path); if ("/mnt/sdcard/xxx".equals(path) && Intent.ACTION_MEDIA_EJECT.equals(intent.getAction())) { // ... } } }; @Override protected void onResume() { super.onResume(); IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_MEDIA_EJECT); filter.addDataScheme("file"); registerReceiver(mReceiver, filter); }Galaxy Nexusなど、端末の内部ストレージとしてSDがマウントされているものが発売される傾向にあります。
クラウドの流行も後押しし、今後はmicroSDが搭載されない端末や内蔵ストレージ搭載の端末が増えてくるもの
と思われます。
内部ストレージ以外の他メディアがマウントされた場合もACTION_MEDIA_*系の通知がくるため、
異なるメディアストレージのパスに対して処理されるのが困るようなケースでは
Environment.getExternalStorageDirectory()等を利用してパスのチェックを行うのが良いでしょう。