2014/08/10

[ios]iBeaconを受けるアプリを作ろうとした

以前、BVMCN5102(nRF51822搭載)で、NFC R/WからUUIDを指定してAdvertisingするしくみを作った。
送信するのは確認できたので、やはり受けるアプリも作りたい。
そんなわけで、久々にXcodeを使うことにした。

ネットを見ながら、CLLocationManagerDelegateだけを持つViewControllerを作った。
が、startMonitoringForRegionしてdidStartMonitoringForRegionがコールバックされるのは確認できたのだけど、startRangingBeaconsInRegionしてもdidRangeBeaconsが呼ばれないし、そもそもdidDetermineStateすら呼ばれない・・・。
あれこれ見たけど、別に悪そうなところはない。
うーむ。

一番疑わしいのが、Xcode6 beta版か、SDK8.0。
Xcode 5.1.1にして、SDK7.1にすると・・・アプリ起動時に「位置情報を使うか?」みたいなダイアログが表示されて、許可すると呼ばれるようになった。
なんだよー。
SDK8.0が怪しいのか、仕様変更なのか・・・。


送信しているProximity UUIDと、APIで指定するProximity UUIDはエンディアンがどうなるんだろう、と思っていたのだが、同じ順番で良かった。
つまり、送信側が「00112233445566778899AABBCCDDEEFF」を使っているのであれば、iOS側は「00112233-4455-6677-8899-AABBCCDDEEFF」でよいということだ。
同じにするのは当たり前やん、と思われそうだけど、Bluetoothって全体的にリトルエンディアンなので、文字列で指定するiOSの方とは逆になるんじゃなかろうかと考えていたのだ。


0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。