8

我想用 USB 数据线从我的电脑与我的 android 应用程序通信。我应该实现什么监听器?

我认为 TCP 连接会满足我的需要,但通过 adb 驱动程序连接它似乎很不合适。

如何使用数据线从 windows 与 android 通信?

4

4 回答 4

9

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

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

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

于 2012-05-17T08:48:13.323 回答
3

安卓通过USB附件和USB主机两种模式支持多种USB外设和安卓USB附件(实现安卓附件协议的硬件)。在 USB 附件模式下,外部 USB 硬件充当 USB 主机。

有关更多信息,请参阅:USB 主机和附件和示例,请单击此处

于 2012-05-17T08:52:55.957 回答
1

您需要有支持 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();


}

请参阅: 参考 1参考 2

于 2013-11-11T06:15:03.527 回答
0

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

于 2017-12-24T01:29:03.517 回答