Подтвердить что ты не робот

Android OTG: программно отключает питание порта

Предположим, что у меня есть светодиодная лампа с USB-питанием, подключенная через адаптер USB OTG к планшету Toshiba Excite 10 под управлением Android 4.0.3, который обеспечивает питание.

Я хочу программно включить и отключить выходы питания порта USB OTG из приложения. (В идеале без root, но я возьму то, что смогу получить). Любые идеи?

4b9b3361

Ответ 1

У вас должно быть разрешение на запись в каталог /sys. Корни делают процесс очень легким. Просто запустите свое устройство и выполните правильную команду echo для переключения битов состояния ядра, например:

String[] command = { "/system/bin/sh", "-c", "echo xxx > /sys/bus/usb/devices/usb3/power/level", };
Runtime.getRuntime().exec(command);

Другой способ - использовать libusb, выкопать библиотеку для функции, которая отключает питание. Вы можете использовать android.hardware.usb.UsbManager для запроса правильного разрешения для libusb.

Ответ 2

Как я знаю отсюда https://askubuntu.com/info/342061/power-on-off-usb-ports "Все предыдущие ответы говорят о механизме приостановки USB, то есть о" логическом отключении питания ", они никогда не будут физически вырезать VBUS + 5V с USB-порта.".

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