WifiP2pManagerで他端末を検出するためには、多くの関数を呼び出す必要があります。(下図)
関数だけ抽出すると下表のようになります。
番号 | 関数 | 処理内容 |
---|---|---|
1 | clearLocalServices | 自デバイスのBonjourサービス終了 |
2 | addLocalService | 自デバイスのBonjourサービス開始 |
3 | setDnsSdResponseListeners | 他デバイスのBonjoourサービス検出時処理、TXTレコード受信時 処理を登録 |
4 | clearServiceRequests | 他デバイスのBonjoourサービス検出終了 |
5 | addServiceRequest | 他デバイスのBonjoourサービス検出開始 |
6 | discoverPeers | デバイス検出 |
7 | discoverServices | サービス検出 |
番号=3以外の関数は、すべてonSuccessコールバック関数で結果が通知されるようになっており、番号=nの関数のonSuccessコールバック関数で、番号=n+1の関数を呼び出すようになっています。
6のdiscoverPeersに使われている単語Peersをデバイスと解釈すべきか、サービスと解釈すべきか悩みますが、7のdiscoverServicesでServicesが使われているので、デバイスと解釈すべきか...
参考:
https://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager
※WifiP2pManagerとは
android.net.wifi.p2p.WifiP2pManagerという名前空間の
Androidのアプリケーションフレームワークに含まれるクラス