Intereting Posts
Различия между Intent и PendingIntent Android Studio показывает, что ограничение inotify предупреждения слишком низкое Запуск / остановка встроенного Wi-Fi / USB-подключения от кода? Фрагмент воссоздается каждый раз после изменения ориентации, не может восстановить состояние Как решить эту ошибку в Android? Java.net.MalformedURLException: протокол не найден: Что такое MultiPartEntity и данные формы? Как они используются для загрузки изображений в Android? Если у меня уже есть ACCESS_FINE_LOCATION, я могу опустить ACCESS_COARSE_LOCATION? ArrayAdapter: данные Json для отправки на счетчик Как изменить ключевой фон любого ключа в мягкой клавиатуре Android Требования к оборудованию HAXM Android-приложение, которое обращается к набору симуляторов Как отправить местоположение устройства на сервер при необходимости Повернуть маркер в зависимости от направления движения NoClassDefFoundError при использовании кинжала 2 после перехода на Android Studio 2.0 Как вставлять и воспроизводить видео на YouTube в андроиде

Программный аксессуар для 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 отлично, и я могу написать свою собственную оболочку взаимодействия)

Solutions Collecting From Web of "Программный аксессуар для Android на Windows"

Я также ищу аналогичное решение. Я попробовал версию Linux, с libusb, с небольшим количеством hickups, смог связаться с устройством. При поиске решений на окнах я пробовал много хаков. Если вам нужно связаться с устройством в режиме ADK, мне нужно отправить несколько команд поставщика, теперь это нужно сделать, пока он подключен в режиме Mass Storage. Это невозможно с помощью драйвера Mass Storage. Я попытался получить дескриптор узла подключенного устройства USB, чтобы узнать, может ли он отправить команду поставщика, но там я мог только обрабатывать запросы Get Descriptor. Поэтому я пошел уродливым методом, заменил драйвер хранилища на libusb-win32, чтобы увидеть, что он может сделать то же самое, ДА, это сработало, но совсем не хорошее решение.

Еще ищете..