Android OTG: программно отключает питание порта
Предположим, что у меня есть светодиодная лампа с USB-питанием, подключенная через адаптер USB OTG к планшету Toshiba Excite 10 под управлением Android 4.0.3, который обеспечивает питание.
Я хочу программно включить и отключить выходы питания порта USB OTG из приложения. (В идеале без root, но я возьму то, что смогу получить). Любые идеи?
Ответы
Ответ 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 на печатной плате, который запрограммирован на отсечку мощности на светодиодную лампу.