Я получаю весь список подключенных устройств ... с идентификатором
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
deviceInfoModels.clear();
while (deviceIterator.hasNext()) {
UsbDevice device = deviceIterator.next();
DeviceInfoModel deviceInfoModel = new DeviceInfoModel();
deviceInfoModel.setDeviceClass(device.getClass() + "");
deviceInfoModel.setDeviceID(device.getDeviceId()+"");
deviceInfoModel.setDeviceName(device.getDeviceName() + " " + device.getProductName());
deviceInfoModel.setVendorID(device.getVendorId() + "");
deviceInfoModel.setDeviceSubClass(device.getDeviceSubclass() + "");
deviceInfoModel.setProductID(device.getProductId() + "");
deviceInfoModels.add(deviceInfoModel);
}
**This Code For Input Device**
InputManager inputManager = (InputManager) getSystemService(Context.INPUT_SERVICE);
for (int i = 0; i < inputManager.getInputDeviceIds().length; i++) {
InputDevice inputDevice=inputManager.getInputDevice(inputManager.getInputDeviceIds()[i]);
inputDevice.getVendorId();
inputDevice.getId();
}
когда я совпадаю с идентификатором InputDevice ID и UsbDevice Id, я получаю разные идентификаторы.
Примечание: я получаю всю правильную информацию, такую как название продукта, идентификатор поставщика и т. д.
Но моя проблема в том, что к моей плате подключено несколько мышей. я не могу понять, какая мышь была нажата.
Мой код для щелчка мышью
@Override
public boolean onTouchEvent(MotionEvent event) {
// Mouse input is treated differently:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH &&
InputDevice.SOURCE_MOUSE == InputDevice.SOURCE_MOUSE) {
Toast.makeText(this, event.getDeviceId() + "", Toast.LENGTH_LONG).show();
}
return super.onTouchEvent(event);
}
Я получаю другой идентификатор устройства ЗДЕСЬ.
КАК Я МОГУ ПОЛУЧИТЬ НАЖАТИЕ МЫШИ
да решено ..
Используйте InputDevice вместо USBDevice, и вы получите получить тот же идентификатор ..
InputManager inputManager = (InputManager) getSystemService(Context.INPUT_SERVICE);
for (int i = 0; i < inputManager.getInputDeviceIds().length; i++) {
if (InputDevice.SOURCE_MOUSE == inputManager.getInputDevice(inputManager.getInputDeviceIds()[i]).getSources()) {
InputDevice inputDevice = inputManager.getInputDevice(inputManager.getInputDeviceIds()[i]);
DeviceInfoModel deviceInfoModel = new DeviceInfoModel();
deviceInfoModel.setDeviceClass(inputDevice.getClass() + "");
deviceInfoModel.setDeviceName(inputDevice.getName() + " " + inputDevice.getProductId());
deviceInfoModel.setVendorID(inputDevice.getVendorId() + "");
deviceInfoModel.setDeviceID(inputDevice.getId() + "");
// deviceInfoModel.setDeviceSubClass(inputDevice.isEnabled() + "");
deviceInfoModel.setProductID(inputDevice.getProductId() + "");
deviceInfoModels.add(deviceInfoModel);
}
}
вы пробовали с серийным номером?