私はXamarin Formsアプリケーションを作成しており、ホストOS(Windows)上で動作するアプリケーションから通信する必要があります。Androidエミュレータと通信するにはどうすればいいですか
ソケットを使用してWindowsからAndroidエミュレータにUDPパケットを送信しようとしましたが、Xamarin Formsアプリはデータを受信しませんでした。
エミュレータとWindowsの間のネットワーク構成は何ですか?他のコミュニケーション手段はありますか?
私はXamarin Formsアプリケーションを作成しており、ホストOS(Windows)上で動作するアプリケーションから通信する必要があります。Androidエミュレータと通信するにはどうすればいいですか
ソケットを使用してWindowsからAndroidエミュレータにUDPパケットを送信しようとしましたが、Xamarin Formsアプリはデータを受信しませんでした。
エミュレータとWindowsの間のネットワーク構成は何ですか?他のコミュニケーション手段はありますか?
私は解決策を発見しました。基本的に、Androidエミュレータには独自のネットワークインターフェイスがないため、必要なポートを転送するにはadb
を使用する必要があります。
エミュレータ、使用するTCPポートを転送するには、次のエミュレータ上のポート8500、使用するホスト上のポート8000を転送するために、例えば
adb forward tcp:sourceport tcp:destport
:
adb forward tcp:8000 tcp:8500
UDPポートをリダイレクトするには、エミュレータのポート(通常5554)にtelnetしてからredirを使用します。
telnet localhost 5554
redir add udp:sourceport:destport
説明:http://www.iomem.com/archives/23-Redirecting-TCP-and-UDP-traffic-to-the-Android-emulator.html
エミュレータ名から、VSエミュレータのようには見えませんが、間違っている可能性があります。
VSエミュレータを使用している場合は、図に示すように、IPとデスクトップマシンのIPを見つけることができます。ここでエミュレータは、WebページがホストWindows上で実行され、通信できることを証明します。
どのエミュレータを使用していますか? – Cheesebaron
Visual Studio用のXamarin SDKツールに付属のもの。タイトルバーに「Android Emulator-Android_Accelerated_x86:5554」と表示されます。 – ionoy
両方が同じネットワーク上にある場合は、IPアドレスを使用して通信することができます –