私のコンピュータからusbデータケーブルでAndroidアプリケーションと通信したいと思います。私はどのリスナーを実装すべきですか?AndroidでのUSBデータケーブル通信
TCP接続が私のニーズに合っていると思いますが、adbドライバ経由で接続するのは難しいようです。
データケーブルを使用してWindowsからAndroidに通信するにはどうすればよいですか?
私のコンピュータからusbデータケーブルでAndroidアプリケーションと通信したいと思います。私はどのリスナーを実装すべきですか?AndroidでのUSBデータケーブル通信
TCP接続が私のニーズに合っていると思いますが、adbドライバ経由で接続するのは難しいようです。
データケーブルを使用してWindowsからAndroidに通信するにはどうすればよいですか?
私はこの件について素敵な投稿を見つけましたhere。 AndroidデバイスとPC間のポート転送を行うには、基本的にadbが必要です。例として:
C:\android-sdk-windows\tools\adb.exe forward tcp:38300 tcp:38300
次に、AndroidデバイスとPCの両方で標準ソケットプログラミングを使用できます。
Androidは、USBアクセサリとUSBホストの2つのモードで、さまざまなUSB周辺機器とAndroid USBアクセサリ(Androidアクセサリプロトコルを実装するハードウェア)をサポートしています。 USBアクセサリモードでは、外部USBハードウェアがUSBホストとして動作します。詳細は
は、以下を参照してください。USB Host and Accessoryと例click here
をあなたは、次のコードを使用し、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();
}
参照: Reference1、Reference2
データ量が少ない場合、あなただけのMTPを使用して前後にファイルをコピーするかもしれませんプロトコル。ほとんどのデバイスですぐに使用でき、USBデバッグを有効にするか、USBアクセサリモードを使用する必要はありません。
素晴らしい!チップをありがとう! – opc0de
私はそれを試しました(私のAPはポート21121を使用しています)。その後、タブレットの無線LANをオフにして、私のAP(PCとアンドロイドが一緒に話すことになっています)を実行します。彼らは私が行う瞬間ではありませんsocket socket = new Socket(mServerIP、21121);ソケットが失敗IOException – steveh
私はPC上のサーバーソケット(それを聞いて受け入れる)とクライアントのアンドロイドのソケットを持っているので、これは私のために動作しないと思う。私はアンドロイドでポートフォワーディングをする必要があると思いますか?私は無料のポートフォワーダーのクーペを試しましたが、どれも成功しませんでした。 – steveh