Androidデバイスに組み込まれているWi-Fiホットスポットを使用してローカルネットワーク接続を開始したい。それを達成する方法はありますか?そして、2つのデバイス間で通信する方法は?
編集:私はそれをプログラムでやりたいです。次に、デバイス間で自分のデータを転送できます。
Androidデバイスに組み込まれているWi-Fiホットスポットを使用してローカルネットワーク接続を開始したい。それを達成する方法はありますか?そして、2つのデバイス間で通信する方法は?
編集:私はそれをプログラムでやりたいです。次に、デバイス間で自分のデータを転送できます。
私はこれまでこれを行ったことがないので、私の答えはすべて理論的です。
あなたがする必要があるのは、1つのデバイスをサーバーとして宣言し、そのホットスポットを既知の名前で手動で起動することだと思います。
コードから組み込みのWi-Fi/USBテザリングを開始/停止しますか?(この質問によると、プログラムでホットスポットを開始することはできません)。
ホットスポットを設定したら、サーバーアプリを起動し、着信接続を待ちます。サーバーアプリは、IPアドレスまたはホスト名を表示できます。
クライアントでは、簡単なチェックを実行して、ホットスポット名が存在するかどうかを確認し、見つかった場合は自動的に接続できます。ネットワークへの接続については、次のリンクを参照してください。
2番目の質問として、通信方法については、デバイス間の接続を確立する必要があります。このためには、サーバーのIPアドレスが必要です。最も簡単な方法は、サーバーUIにIPアドレスを表示してから、クライアントに手動で入力して[接続]を押すことです。次に、既知のポートでサーバーへの接続を確立し、クライアントとサーバー間でメッセージを送信できます。
参考までに、Android用のWebサーバーであるNanoHttpdを見つけました。ServerSocketを使用して着信接続をリッスンします。
考えられる答え:
ICSおよびルート化されていないデバイスの前
Wi-Fi経由でデバイスに接続する方法はありません。実行するAPIはありません。Bluetoothは、最良のオプションまたはユーザーインタラクションです。
ICSおよびルート化されたデバイスの前
誰かがコードをハッキングしたかどうかはわかりませんが、wifiスポットへの自動接続を試みたときに気づきました:
ICSの使用
ICSには、 Wi- FiDirectと呼ばれるwifi経由でデバイスを接続する新しい方法があります。ここにいくつかのデモへのリンクがあります。
個々の端末(デバイス)ごとに独自のアプリケーションを開発する場合は、ソケットプログラミングでうまくいくと思います。
はい、androidはjavaソケットプログラミングと同じようにソケットプログラミングをサポートしています。
最初のグーグルJavaソケットプログラミングチュートリアルそしてあなたはアンドロイドで同じ知識を使うことができます。
また、マニフェストにインターネット許可の使用を含めることを忘れないでください。実際、それは私の脳を長い間食べていたものです:)
p2pのようなサーバーなしでwifi対応デバイス間の通信を意味しますか?もしそうなら、ICSでサポートされているそのwifiダイレクトはこれをチェックしてくださいhttp://developer.android.com/reference/android/net/wifi/p2p/package-summary.html
ICS以前はwifidirect用の標準のAndroidAPIはありませんが、Galaxy S2にはwifidirectがあり、サードパーティの開発者が使用できない独自のAPIを使用しています。
プログラムでwifyLANを作成するかどうかはわかりませんが、wify LANを手動で作成してから、brianesteyが言ったようにjava tcp/udpプログラムを実行できます。
「2番目の質問については、通信方法-デバイス間の接続を確立する必要があります。このためには、サーバーのIPアドレスが必要です。最も簡単な方法は、サーバーのUIにIPアドレスを表示することです。次に、クライアントに手動で入力して[接続]を押します。これにより、既知のポートでサーバーへの接続が確立され、クライアントとサーバー間でメッセージを送信できます。」
手動接続の場合は、次の手順に従います
いずれかの電話から設定/ワイヤレス&ネットワーク/ポータブルWi-Fiホットスポット設定を取得します
新しいホットスポットを作成し、そこからWi-Fiポータブルホットスポットをオンにします
PCを含む他のすべてのデバイスをそのホットスポットに接続します
プログラムで各デバイスのIPを取得します(PCを含むが、わかりません)