Как я могу отключить и включить соединение USB OTG для включения и выключения аппаратного устройства?

Я работаю над проектом Android, где использую телефон для питания внешнего устройства. Через соединение USB-OTG я могу запитать внешнее устройство.

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

Я видел это раньше на более старом телефоне Samsung Galaxy 3 (на гораздо более старой версии Android) путем обновления данных в файле; конкретно этот файл:

/sys/devices/виртуальный/host_notify/usb_otg/режим

Но я пытаюсь написать программное обеспечение, чтобы оно было более универсальным и могло работать на любом новом устройстве Android.

Есть ли способ сделать то, что мне нужно?


person Adam Higgins    schedule 02.08.2019    source источник
comment
Я хочу знать, могу ли я написать программу в студии Android, где я могу нажать кнопку в приложении, чтобы переключить питание на это внешнее устройство (включить и выключить его). Извините, я очень сомневаюсь, что что-то подобное возможно. Я провел некоторое исследование этой идеи некоторое время назад, и кажется, что эта функция не поддерживается.   -  person TheScribbler2019    schedule 02.08.2019
comment
Это кажется сложным, но я видел, как это работает со старым Samsung, поэтому мне просто нужен способ сделать это на более новой версии Android.   -  person Adam Higgins    schedule 02.08.2019
comment
Хорошо, предположим, что это возможно. Вам, вероятно, потребуется рутировать свой телефон, а затем переписать какой-нибудь скрипт и заменить его внутри системы. Мне интересно, и я проведу некоторое исследование, но не будет быстрого и серьезного простого решения, если оно вообще есть. Я буду держать вас в курсе, если что-то найду.   -  person TheScribbler2019    schedule 04.08.2019
comment
Я нашел способ сделать это на moto G6 с помощью файла /sys/class/power_supply/usb/usb_otg. Я записываю 0 в файл, чтобы остановить выходную мощность, и 3 в файл, чтобы пополнить запасы внешнего устройства, но во время исследования мне не попалось ничего общего.   -  person Adam Higgins    schedule 12.09.2019


Ответы (1)


Я пытался найти общий способ сделать это, но это не кажется возможным, потому что единственный способ, который я видел, это использование команд оболочки для переключения открытых битов ядра через корневые файлы.

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

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

person Adam Higgins    schedule 12.09.2019