首页 文章

Android中的Usb数据线通信[关闭]

提问于
浏览
8

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

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

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

4 回答

  • 0

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

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

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

  • 9

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

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

  • 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();
    
    
    }
    

    见:Reference1Reference2

  • 3

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

相关问题