Android(> 4.0)デバイスにMac OSまたはWindowsデバイスとのWiFi-Direct接続を確立させることは可能ですか?
2 に答える
Wifi-Direct Docsによると、プロトコルは次のことを許可します。
Android 4.0 (API レベル 14) 以降のデバイスと、Wi-Fi 経由で相互に直接接続するための適切なハードウェア
Google が API 経由でこの機能を提供しているようには見えません。ただし、WiFi-Direct は独自のプロトコルではなく、どのプラットフォームにも実装できます。Windows の下で Wifi-Direct を動作させようとしている人々の Web には、いくつかの投稿があります。
- WIFI 接続を使用してデスクトップ PC から Android デバイスにメッセージをブロードキャストする
- https://superuser.com/questions/417888/how-do-i-connect-a-laptop-running-windows-7-to-an-android-phone-using-wifi-direct
- http://www.intel.com/content/www/us/en/wireless-products/my-wifi-technology.html
- http://androidforums.com/android-lounge/552970-howto-wifi-direct-use-your-laptop-desktop-softap-android-reverse-tethering.html
必要なのは、java.net.Socket を使用することだけです。直接接続を確立することの意味によって異なります。TCP 接続は、宛先デバイス (Windows または Mac) で ServerSocket によってリッスン ソケットを開くと確立されます。他のデバイスでは、ソケットを宛先アドレスで使用できます。もちろん、windows または mac ボックスは、おそらくファイアウォールでそのポートを開く必要があります。
実際に知っておく必要があるのは、ターゲット コンピューターの名前を取得する方法、またはローカル ネットワーク上のコンピューターを検出する方法だと思います。残念ながら、Android のバージョンには依存しないと思います。ヒントについてはhttp://en.wikipedia.org/wiki/Zero_configuration_networkingを確認してください。通常はルートになる必要があるため、Androidで特権ポートを開く必要がある場合に問題が発生する可能性があるのではないかと心配しています。そして、それにはルート化されたアンドロイドが必要です。
もちろん、その直接接続で何を意図し、どのソフトウェアが必要かを指定する必要があります。両端にアプリケーションがある場合は、Android で割り当てられていない特権のないポートを開くことができます。UDP を使用して、Android デバイスの名前を定期的にブロードキャストします (ユーザーにデバイスの名前を入力するように依頼してください)。マルチキャストを使用して要求を送信し、同じ方法で応答を受信します。マルチキャストの送受信には、Android、Windows、および Mac でもアプリケーションが必要です。これで、マルチキャスト アプリケーションから、マシンのタイプと、直接接続のために開いたままにしたローカル ポートを読み取ることができます。udp メッセージのソースから、接続先がわかります。
フレームワークを使用して速度を上げることができます。これにはすべてネットワークに関する知識が必要ですが、私はより簡単でうまく機能するソリューションを知りません。直接接続して何をするかについての詳細を提供しない限り。