У меня есть USB-устройство, модель GP-3120TN, productName - Gprinter USB Printer. Я подключаю его с помощью otg и usb-serial line к телефону Android (API 19).
Теперь я хочу получить модель устройства, как GP-3120TN. Я не могу найти поле в UsbDevice или UsbDeviceConnection. Я могу получить productName только через код ниже
`
usbDeviceConnection.claimInterface(usbInterface, true);
byte[] rawDescs = usbDeviceConnection.getRawDescriptors();
String manufacturer, product;
byte[] buffer = new byte[255];
int idxMan = rawDescs[14];
int idxPrd = rawDescs[15];
try {
int rdo = usbDeviceConnection.controlTransfer(UsbConstants.USB_DIR_IN | UsbConstants.USB_TYPE_STANDARD, STD_USB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_STRING << 8) | idxPrd, 0, buffer, 0xFF, 0);
product = new String(buffer, 2, rdo - 2, "UTF-16LE");
DeviceModel deviceModel = new DeviceModel(serialNumber, product, manufacturer, usbDevice, usbInterface);
Log.e(TAG, "deviceModel: " + deviceModel.toString());
String productBase64 = Base64.encodeToString(buffer, 2, rdo - 2, Base64.NO_WRAP);
deviceModel.productNameBase64 = productBase64;
deviceModelList.add(deviceModel);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (usbDeviceConnection != null) {
//usbDeviceConnection.releaseInterface(usbInterface);
usbDeviceConnection.close();
}
}`
Каким образом я могу получить модель устройства? Модель записана на железо? Мне нужна модель устройства, чтобы знать, какой тип USB-принтера?