Me gustaría convertir mi computadora en un accesorio de Android utilizando mi aplicación. Por lo tanto, en lugar de un hardware especializado, esta será solo una PC que cambiará el teléfono al modo de accesorio, lo que pondrá en marcha una aplicación Java en el teléfono asociada con el hardware host y creará un canal de comunicación.Accesorio Android basado en software en Windows
He encontrado un sample code (más alguna aplicación Java de Android) para hacer esto en Linux usando libusb. Funciona "abriendo" el teléfono usando el VID estándar y el PID. Luego envía un command to turn on the accessory mode, junto con los metadatos como modelo, versión, etc.
Si el teléfono admite el modo accesorio, se desconectará y volverá a enumerar con un PID diferente. El código de muestra luego verifica si lo hizo y abre el nuevo dispositivo.
Sin embargo, estoy intentando que esto se ejecute en Windows. He encontrado algunas bibliotecas USB, como LibUsbDotNet, pero todas parecen requerir el dispositivo usando un controlador WinUSB/libusb. Utilicé una herramienta en LibUsbDotNet para generar un controlador libusb para mi teléfono, instalándolo sobre el disco genérico extraíble. Pero esto significa que ahora no puedo acceder al teléfono como una unidad extraíble cuando quiero, por lo que esta no es una solución.
¿Hay alguna manera (preferiblemente una biblioteca) que pueda abrir cualquier dispositivo USB conectado basado en VID y PID, y luego enviarle algunos comandos sin procesar?
Después de eso, el dispositivo volverá a enumerar con un PID diferente, que puedo utilizar para crear mi propio controlador WinUSB, por lo que no es un problema. Solo necesito inyectar algunos comandos en/alrededor del controlador predeterminado para activar el modo de accesorio.
(yo preferiría solución .NET, pero nada de Windows está muy bien y puedo escribir mi propio contenedor de interoperabilidad)
¿qué tal wifi? ¿No puedes usar eso para la comunicación? – sherif
Desafortunadamente, no, no en este caso. Además, incluso si pudiera, USB sería mucho mejor: carga el teléfono, desencadena el lanzamiento de una aplicación de back-end en el teléfono y el auto reconoce varias computadoras según el número de serie provisto, lo que provoca una reacción diferente en cada caso. – lacop
la pregunta es si vale la pena el esfuerzo también puede usar bluetooth. Teóricamente, podría usar adb, puede iniciar una aplicación que necesita y funciona a través de usb. los comandos de extracción y extracción podrían usarse para transferir datos. – sherif