1、写个广播接收者:
BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
Log.e(TAG, "拔出usb了");
UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device != null) {
Log.e(TAG, "设备的ProductId值为:" + device.getProductId());
Log.e(TAG, "设备的VendorId值为:" + device.getVendorId());
}
} else if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
Log.e(TAG, "插入usb了");
}
}
};
2、生成变量:
private IntentFilter usbDeviceStateFilter;
3、注册:
usbDeviceStateFilter = new IntentFilter();
usbDeviceStateFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
usbDeviceStateFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(mUsbReceiver, usbDeviceStateFilter);
4、注销:
if (mUsbReceiver != null) {
unregisterReceiver(mUsbReceiver);
mUsbReceiver = null;
}
5、效果:

参考:
https://blog.youkuaiyun.com/zhizhuodewo6/article/details/74973356
本文详细介绍了如何在Android应用中通过注册BroadcastReceiver来监听USB设备的插入和拔出事件,包括创建广播接收者、生成过滤器、注册和注销接收者等步骤。
2997





