Android中的Usb数据线通信

时间:2012-05-17 08:38:51

标签: android usb

我想用usb数据线从我的计算机上与我的Android应用程序进行通信。我应该实施什么样的听众?

我认为TCP连接可以满足我的需求,但通过adb驱动程序连接它似乎很难。

如何使用数据线从Windows与Android通信?

4 个答案:

答案 0 :(得分:9)

我发现了一篇关于这个主题的好文章here。您基本上需要adb才能在Android设备和PC之间进行端口转发。举个例子:

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

然后,您可以在Android设备和PC中使用标准套接字编程。

答案 1 :(得分:3)

Android通过两种模式支持各种USB外围设备和Android USB配件(实现Android配件协议的硬件):USB配件和USB主机。在USB配件模式下,外部USB硬件充当USB主机。

有关详细信息,请参阅:USB Host and Accessory和示例click here

答案 2 :(得分:1)

您需要使用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();


}

请参阅: Reference1Reference2

答案 3 :(得分:0)

如果数据量很低,您可以使用MTP协议来回复制文件。在大多数设备上随时可用,无需启用USB调试或使用USB附件模式。