我想用usb数据线从我的计算机上与我的android应用程序进行通信 . 我应该实施什么样的听众?
我认为TCP连接将满足我的需求,但通过adb驱动程序与它连接似乎很难 .
如何使用数据线从Windows与Android进行通信?
我发现了一篇关于这个主题的好文章here . 您基本上需要adb才能在Android设备和PC之间进行端口转发 . 举个例子:
C:\android-sdk-windows\tools\adb.exe forward tcp:38300 tcp:38300
然后,您可以在Android设备和PC中使用标准套接字编程 .
Android通过两种模式支持各种USB外围设备和Android USB配件(实现Android配件协议的硬件):USB配件和USB主机 . 在USB配件模式下,外部USB硬件充当USB主机 .
有关更多信息,请参阅:USB Host and Accessory和示例click here
您需要有支持API或SDK的USB数据传输电缆(也称为USB数据链接电缆),然后使用以下代码:
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
如果数据量很低,您可以使用MTP协议来回复制文件 . 在大多数设备上都可以轻松使用,无需启用USB调试或使用USB附件模式 .
4 回答
我发现了一篇关于这个主题的好文章here . 您基本上需要adb才能在Android设备和PC之间进行端口转发 . 举个例子:
然后,您可以在Android设备和PC中使用标准套接字编程 .
Android通过两种模式支持各种USB外围设备和Android USB配件(实现Android配件协议的硬件):USB配件和USB主机 . 在USB配件模式下,外部USB硬件充当USB主机 .
有关更多信息,请参阅:USB Host and Accessory和示例click here
您需要有支持API或SDK的USB数据传输电缆(也称为USB数据链接电缆),然后使用以下代码:
见:Reference1,Reference2
如果数据量很低,您可以使用MTP协议来回复制文件 . 在大多数设备上都可以轻松使用,无需启用USB调试或使用USB附件模式 .