Android:如何检测“打开USB存储”广播?

我试图检测使用BroadcastReceiver 打开USB存储,虽然我能够检测USB连接使用android.intent.action.UMS_CONNECTED行动

断开使用android.intent.action.UMS_DISCONNECTED行动。

我如何检测USB存储

Solutions Collecting From Web of "Android:如何检测“打开USB存储”广播?"

以下是我如何检查存储卡是否安装/卸下。 你可以改变它来检查删除/ insterted。 我这样做是通过注册一个BroadcastReceiver来获取“挂载事件”,然后检查存储卡是在什么状态。如果它没有挂载,而不是在它正在检查(重新挂载卡时的状态),它是未挂载的该卡已被删除。

public class MemCardReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ onMemcardMounted(); } else if (!Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING)){ onMemorycardUnMounted(); } } private void onMemorycardUnMounted() {} private void onMemcardMounted() {} } 

在ManifestFile中

 <receiver android:enabled="true" android:exported="true" android:name="the.name"> <intent-filter> <action android:name="android.intent.action.MEDIA_MOUNTED" /> <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> <data android:scheme="file" /> </intent-filter> </receiver> 

有几个不同的状态检查这个,如果有任何其他说明。 去除

我认为android.Intent.action.ACTION_MEDIA_EJECT广播当用户使用USB存储和ACTION_MEDIA_MOUNTEDclosures时。