EAWiFiUnconfiguredAccessoryBrowserの使い方

はじめに

EAWiFiUnconfiguredAccessoryBrowser(名前が長い)とは何か
EAWiFiUnconfiguredAccessoryBrowserで検索した人はわかると思いますが一応説明しますと、WiFiスピーカーなどのWi-Fiを利用したアクセサリーを、Wi-Fiに接続させる設定をすることができます。

主な機能としては下記
・接続したいと言っているWi-Fiアクセサリーを検索する。見つけた、見失った。
 (接続したいとは、WPSボタン押した状態といえばわかりやすいと思います)
・見つけたアクセサリーの接続設定画面を呼び出す。
・設定の成功/失敗/キャンセルイベントの受け取り。

ちなみにiOS8から利用できます。

実装

ではさっそく実装・・・と言いたい所ですが、プロジェクトの設定で一つ事前にやることが有ります。

プロジェクトの設定でCapabilitiesを選び、下記画像の様に「Wireless Accessory Configuration」というものが出てくるのでこれをまずONにします。
この設定が有効にならないとEAWiFiUnconfiguredAccessoryBrowserはまったく動作しません。エラーにもならないから全然使えないじゃないかと最初思いました。

スクリーンショット 2016-04-20 16.39.58

ただし、これをONにしただけでは有効になってません、結構手間ですがApple Developer Programで、「Wireless Accessory Configurationにチェック」を入れた、App IDを作り(下記画像)
それを元にProvisioning Profileを作って、それをプロジェクトで利用しないと有効になりません。
※Wildcard App IDではなく、Explicit App IDで作って下さい。

スクリーンショット 2016-04-20 17.25.12

ここまで出来たら、ExternalAccessory.frameworkをプロジェクトにインポートして下さい。(先にやってもいいです)

ようやく実装です。今回は検索と設定を行うクラスを一つ作りました。

使い方としてはstartScanで検索を開始し、見つかったらstartSettingWithAccessoryで設定を開始することができます。

設定画面を呼び出すとモーダルで設定が開きますが、ここのUIは変更できないので注意して下さい。

最後に

このAPIが必要になった時、全く日本語の記事が無くて少し大変でした。

●この記事を書いた人