Я бы хотел превратить свой компьютер в аксессуар для Android с помощью моего приложения. Таким образом, вместо специализированного оборудования это будет просто ПК, который переключит телефон в режим аксессуаров, запустив, таким образом, какое-нибудь приложение Java на телефоне, связанное с оборудованием хоста, и создаст канал связи.
Я нашел пример кода (плюс некоторое приложение Java Android), чтобы сделать это в Linux с помощью libusb. Он работает, «открывая» телефон, используя стандартные VID и PID. Затем он отправляет команду для включения дополнительного режима вместе с метаданными, такими как модель, версия и т. Д.
Если телефон поддерживает режим аксессуаров, он будет отключен и повторно проведет подсчет с другим PID. Затем образец кода проверяет его наличие и открывает новое устройство.
Однако я пытаюсь запустить это в Windows. Я нашел несколько USB-библиотек, таких как LibUsbDotNet , но все они, кажется, требуют устройства, использующего драйвер WinUSB / libusb. Я использовал инструмент в LibUsbDotNet для генерации драйвера libusb для моего телефона, установив его поверх старого универсального съемного диска. Но это означает, что теперь я не могу получить доступ к телефону как к съемному диску, когда захочу, так что это не решение.
Есть ли способ (предпочтительно библиотека), который может открыть любое подключенное USB-устройство на основе VID и PID, а затем отправить ему несколько необработанных команд?
После этого устройство будет повторно перечислено с другим PID, который я могу использовать для создания своего собственного драйвера WinUSB, так что это не проблема. Мне просто нужно ввести некоторые команды через / вокруг драйвера по умолчанию, чтобы включить вспомогательный режим.
(Я бы предпочел решение .NET, но с Windows все в порядке, и я могу написать свою собственную оболочку взаимодействия)