Wi-Fi Direct制御用のFragment

 では、Wi-Fi Directを制御する、UIのないFragment(WiFiDirectFragment.java)を実装していきます(リスト1)。すべてのコードを掲載することは難しいのでポイントのみを解説していきます。

リスト1●Fragmentのプログラム(WiFiDirectFragment.javaの一部)
[画像のクリックで拡大表示]

 設定画面でWi-Fi機能をONにしてアプリを起動した直後など、Wi-Fi関連には様々なイベントが発生します。Fragmentには、イベント発生時に呼ばれるコールバック・インタフェースを用意します*1。WiFiDirectCallbackPickerとWiFiDirectCallbackというインタフェースです。このインタフェースを介してコールバックを受け取ります。

*1 本来ならば画面表示用のFragment、Wi-Fi Direct用のFragment、ゲーム用のFragment、それを統べるActivityという構成が望ましいのですが、誌面の都合により簡略化しています。また、ソースコード中に文字列をベタ記述していますが、この記述はよいスタイルではありません。多言語化を意識し、リソースXMLへ切り出すようにしましょう。

 Wi-Fi Directのパッケージである「net.vvakame.wifiox.wifidirect」について、利用側から参照されるのはWiFiDirectFragmentだけなので、クラスやメソッドの可視性について、次の三つのルールを設けました。(1)OS側から通知を受け取るためのイベントリスナーを実装するメソッドは可視性を変更できないためpublicとする、(2)外部から利用される必要があるメソッドはpublicとする、(3)内部的に利用されるクラスやメソッドはpackage privateとする、です。

 リスト1の下方に記述するリスト2のonAttachメソッドでは、(1)で自分のデバイス用のコールバックを取得し、(2)でWiFiDirectBroadcastReceiver用のIntentFilterを用意しています。その後(3)で、WifiP2pManagerの取得と初期化を行っています。

リスト2●onAttachメソッド
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら