前提・実現したいこと
現在androidアプリの開発を行っています.
アプリ内の通信をWifi-Directで実装しようと思っているのですが, Wifi-Directを用い複数のandroid端末を同一のグループに接続させる手順がわかりません.
調べたところ1-1通信についての記事は多数見受けられるのですが, 1-manyの通信についてサンプル等を見つけることが出来ませんでした.
端末探索から接続完了までの流れをご存知の方, どうかご教授お願いいたします.
試したこと
1-1の通信は実機により確認しています.
端末探索はWifiP2pManagerのdiscoverPeersによって行い, レシーバが取得したリストから端末を選択(ひとまずリストの最初の端末を指定).
接続処理においてはグループオーナー(以下GO)を WifiP2pConfigのgroupOwnerIntentを15に指定することで固定しています.
以下接続処理部分のソースです.
WifiP2pDevice device = ((List) peers.getDeviceList()).get(0); //Connect WifiP2pConfig config = new WifiP2pConfig(); if(グループオーナーかクライアントか) { //GO側の処理 config.deviceAddress = device.deviceAddress; config.wps.setup = WpsInfo.PBC; if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } if (device.status == WifiP2pDevice.AVAILABLE && this.device.status == WifiP2pDevice.AVAILABLE) { config.groupOwnerIntent = 15; ((DeviceActionListener) getActivity()).connect(config); } }else{ //クライアント側の処理 config.groupOwnerIntent = 0; }
この処理を実行後, 第三の端末からdiscoverPeersによる端末探索を行い, GO端末を探そうとしたところGO端末およびクライアント端末は発見できませんでした.
一度接続が確立すると外部から検知できなくなるのでしょうか...
補足情報(FW/ツールのバージョンなど)
実機デバッグにおいてはLenovoのMoto G4 plus(android7.0)を用いています.
あなたの回答
tips
プレビュー