Программный аксессуар Android на Windows

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

Я нашел пример кода (плюс некоторое Java приложение для Android), чтобы сделать это на Linux, используя libusb. Он работает, "открывая" телефон с помощью стандартных VID и PID. Затем он посылает команду на включение режима аксессуаров, вместе с метаданными, такими как модель, версия и т.д.

Если телефон поддерживает режим аксессуаров, он отключается и повторно регистрируется с другим PID. Затем пример кода проверяет, так ли это, и открывает новое устройство.

Однако я пытаюсь запустить это на Windows. Я нашел несколько библиотек USB, например LibUsbDotNet, но все они, похоже, требуют, чтобы устройство использовало драйвер WinUSB/libusb. Я использовал инструмент в LibUsbDotNet для создания libusb-драйвера для моего телефона, установив его поверх старого универсального драйвера съемного диска. Но это означает, что теперь я не могу получить доступ к телефону как к съемному диску, когда захочу, так что это не решение.

Есть ли способ (желательно библиотека), который может открыть любое подключенное USB-устройство на основе VID и PID, а затем отправить на него несколько необработанных команд?

После этого устройство будет повторно зарегистрировано с другим PID, который я могу использовать для создания собственного драйвера WinUSB, так что это не проблема. Мне просто нужно ввести некоторые команды через/в обход драйвера по умолчанию, чтобы включить режим аксессуаров.

(Я бы предпочел решение на .NET, но подойдет любой Windows, и я могу написать свою собственную обертку interop)

6
задан lacop 26 January 2012 в 16:43
поделиться