Как обнаружить нестандартное USB-устройство на телефоне Android? - PullRequest
0 голосов
/ 31 мая 2018

Вот моя схема схема

  1. Мое устройство является нестандартным устройством USB
  2. Я использую только питание 5 В мобильного телефона для питания моего устройстваподключив контакт ID к земле
  3. Я подключаю D-контакт к 5 В с помощью подтягивающего резистора 1,5 кОм, чтобы сообщить телефону об изменении напряжения на D-контакте, когда мое устройство подключено к сети
  4. Я не использую D + / D- контакт для связи с телефоном

Мой вопрос: как определить устройство, когда оно подключено к телефону Android? Я пытался прочитать обе переменные

UsbManager.ACTION_USB_DEVICE_ATTACHED 
android.hardware.usb.action.USB_STATE

обе без изменений.

но странно, когда я вставляю USB-кабель, android.hardware.usb.action.USB_STATE= подключен

1 Ответ

0 голосов
/ 03 июня 2018

USB - сложный протокол.Устройства USB организованы в device classes как класс запоминающих устройств , класс устройств связи (CDC) , ... (http://www.usb.org/developers/docs/devclass_docs/, https://www.kernel.org/doc/html/v4.13/driver-api/usb/power-management.html) когда устройство USB подключено к хосту, оно сообщает свой класс хосту (через линии D-D + данных), и хост загружает соответствующие модули / драйверы ядра и конфигурацию

Класс устройства и тип USB также определяет, сколько энергии выводится через порт USB, при простом подключении кабеля USB используется стандартная конфигурация для выходной мощности (я думаю, что 500 мА), однако я не знаю механизм того, как хост обнаруживаетподключенный USB-кабель, возможно, используйте мультиметр и измерьте сопротивление и емкости между различными линиями USB-кабеля ...

возможно подключите ваше устройство к USB-кабелю и подключите его к Android, потому что кабельобнаружена и выходная мощность включена ...

...