Кабель передачи данных USB в Android

Я хочу общаться с моим приложением Android с моего компьютера с помощью USB-кабеля для передачи данных. Какой слушатель следует реализовать?

Я думаю, что TCP-соединение будет соответствовать моим потребностям, но соединение с ним над драйвером adb кажется неудобным.

Как я могу обмениваться данными с окнами на Android с помощью кабеля для передачи данных?

Здесь я нашел хорошую статью об этой теме. Вам в основном нужен adb, чтобы выполнить переадресацию порта между Android-устройством и ПК. В качестве примера:

C:\android-sdk-windows\tools\adb.exe forward tcp:38300 tcp:38300 

Затем вы можете использовать стандартное программирование сокетов, как на Android-устройстве, так и на ПК.

Android поддерживает различные периферийные устройства USB и аксессуары для Android USB (аппаратное обеспечение, которое реализует протокол аксессуаров Android) через два режима: USB-аксессуар и USB-хост. В режиме USB-аксессуаров внешнее USB-оборудование действует как хосты USB.

Для получения дополнительной информации см. USB-хост и аксессуар и пример нажмите здесь

Вам необходимо иметь кабель передачи данных USB (также называемый кабелем передачи данных USB), который поддерживает API или SDK, а затем использовать следующий код:

 void usb2usbComm() { BYTE buf[65530]; LPU2URET pU2uRet; BOOL bRet; int ret; CString msgstr; ret = u2u_open(); if (ret == -1){ AfxMessageBox("Open U2U device Success."); }else{ msgstr.Format("Open U2U device fail,return:%d", ret); AfxMessageBox(msgstr); return; } //send data bRet = u2u_SendData(buf, 65530, ret); if(!bRet) { msgstr.Format("Send data error,return:%d", ret); AfxMessageBox(msgstr); return; } //receive data while (1){ bRet = u2u_RecvData(recvData, dataLen, ret); if( !bRet ) { msgstr.Format("Receive data error,return:%d", ret); AfxMessageBox(msgstr); u2u_close(); return; }else{ break; } } u2u_close(); } , void usb2usbComm() { BYTE buf[65530]; LPU2URET pU2uRet; BOOL bRet; int ret; CString msgstr; ret = u2u_open(); if (ret == -1){ AfxMessageBox("Open U2U device Success."); }else{ msgstr.Format("Open U2U device fail,return:%d", ret); AfxMessageBox(msgstr); return; } //send data bRet = u2u_SendData(buf, 65530, ret); if(!bRet) { msgstr.Format("Send data error,return:%d", ret); AfxMessageBox(msgstr); return; } //receive data while (1){ bRet = u2u_RecvData(recvData, dataLen, ret); if( !bRet ) { msgstr.Format("Receive data error,return:%d", ret); AfxMessageBox(msgstr); u2u_close(); return; }else{ break; } } u2u_close(); } , void usb2usbComm() { BYTE buf[65530]; LPU2URET pU2uRet; BOOL bRet; int ret; CString msgstr; ret = u2u_open(); if (ret == -1){ AfxMessageBox("Open U2U device Success."); }else{ msgstr.Format("Open U2U device fail,return:%d", ret); AfxMessageBox(msgstr); return; } //send data bRet = u2u_SendData(buf, 65530, ret); if(!bRet) { msgstr.Format("Send data error,return:%d", ret); AfxMessageBox(msgstr); return; } //receive data while (1){ bRet = u2u_RecvData(recvData, dataLen, ret); if( !bRet ) { msgstr.Format("Receive data error,return:%d", ret); AfxMessageBox(msgstr); u2u_close(); return; }else{ break; } } u2u_close(); } , void usb2usbComm() { BYTE buf[65530]; LPU2URET pU2uRet; BOOL bRet; int ret; CString msgstr; ret = u2u_open(); if (ret == -1){ AfxMessageBox("Open U2U device Success."); }else{ msgstr.Format("Open U2U device fail,return:%d", ret); AfxMessageBox(msgstr); return; } //send data bRet = u2u_SendData(buf, 65530, ret); if(!bRet) { msgstr.Format("Send data error,return:%d", ret); AfxMessageBox(msgstr); return; } //receive data while (1){ bRet = u2u_RecvData(recvData, dataLen, ret); if( !bRet ) { msgstr.Format("Receive data error,return:%d", ret); AfxMessageBox(msgstr); u2u_close(); return; }else{ break; } } u2u_close(); } 

См. Ссылки : Reference1 , Reference2