Android : 如何检测已经连接的USB设备?
Android : how to detect already connected usb device?
我正在尝试检测已经连接到 android 的 USB 设备。
我知道有一些操作可以检测 USB 何时连接或断开。
但是我真的不知道如何在将 USB 设备连接到 android 后检查设备。
此外,我发现每个 USB 设备都有其设备 class 代码,但我如何确定连接的是哪种设备?例如,我需要同时检测 usb 鼠标和键盘;我如何区分它们?
试试这个:
- 首先为 USB 连接注册广播。
清单权限:
:
<intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter>
使用此
获取包含详细信息的 USB 设备列表
public void getDetail() {
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while (deviceIterator.hasNext()) {
UsbDevice device = deviceIterator.next();
manager.requestPermission(device, mPermissionIntent);
String Model = device.getDeviceName();
int DeviceID = device.getDeviceId();
int Vendor = device.getVendorId();
int Product = device.getProductId();
int Class = device.getDeviceClass();
int Subclass = device.getDeviceSubclass();
}}
在这里回答 Benny 的问题是 mPermissionIntent 的样子:
string actionString = context.PackageName + ".action.USB_PERMISSION";
PendingIntent mPermissionIntent = PendingIntent.GetBroadcast(context, 0, new
Intent(actionString), 0);
mUsbManager.RequestPermission(device, permissionIntent);
我正在尝试检测已经连接到 android 的 USB 设备。 我知道有一些操作可以检测 USB 何时连接或断开。 但是我真的不知道如何在将 USB 设备连接到 android 后检查设备。 此外,我发现每个 USB 设备都有其设备 class 代码,但我如何确定连接的是哪种设备?例如,我需要同时检测 usb 鼠标和键盘;我如何区分它们?
试试这个:
- 首先为 USB 连接注册广播。 清单权限:
:
<intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter>
使用此
获取包含详细信息的 USB 设备列表public void getDetail() { UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); while (deviceIterator.hasNext()) { UsbDevice device = deviceIterator.next(); manager.requestPermission(device, mPermissionIntent); String Model = device.getDeviceName(); int DeviceID = device.getDeviceId(); int Vendor = device.getVendorId(); int Product = device.getProductId(); int Class = device.getDeviceClass(); int Subclass = device.getDeviceSubclass(); }}
在这里回答 Benny 的问题是 mPermissionIntent 的样子:
string actionString = context.PackageName + ".action.USB_PERMISSION";
PendingIntent mPermissionIntent = PendingIntent.GetBroadcast(context, 0, new
Intent(actionString), 0);
mUsbManager.RequestPermission(device, permissionIntent);