FileMaker Go 15 「RangeBeacons 関数」利用時のポイント

● RangeBeacons 関数を利用したサンプルソリューション

FMGo.jp にて無償公開中の弊社サンプルソリューション「BeaconMaster」で RangeBeacons 関数を利用したカスタムAppを試すことができます。

● RangeBeacons 関数ヘルプより引用

目的:iBeacon と iOS デバイスへの近接の一覧を返します。

構文:RangeBeacons ( UUID { ; タイムアウト ; メジャー ; マイナー } )

引数:UUID – 検索対象の iBeacon の Universally Unique Identifier。UUID によって特定の種類としての 1 つ以上の iBeacon または特定の組織からの 1 つ以上の iBeacon が識別されます。
たとえば、デパートのすべての支店の iBeacon で同じ UUID を共有できます。

タイムアウト – 値が返されるまでに待機する秒数。タイムアウトが指定されていない場合、5 秒後に値が返されます。

メジャー – iBeacon のグループを識別する値。たとえば、デパートの特定の支店のすべての iBeacon で同じメジャーを共有できます。

マイナー – iBeacon のグループ内の特定の iBeacon を識別する値。たとえば、デパートの特定の支店の玩具セクションのすべての iBeacon で同じマイナーを共有できます。

中カッコ { } 内の引数はオプションです。

RangeBeacons 関数は iPad / iPhone の周辺に存在する iBeacon を Proximity UUID、Major、Minor、を指定して検索することができる関数です。

引数の指定によって特定のグループのすべての iBeacon を探したり、特定のグループの中でさらに小グループのすべての iBeacon を探したり、特定の1つの iBeacon を探したりと使い分けができます。

“検索対象の iBeacon の Proximity UUID を知っておく必要がある” という点に留意が必要です。
※不特定多数の iBeacon を探すための関数ではありません。

● RangeBeacons 関数で利用する iBeacon の設定値

【Proximity UUID】iBeacon の識別子(アプリ単位で同一など) – 128bit

【Major】同じ Proximity UUID の iBeacon グループ内での識別子 – 16bit

【Minor】同じ Proximity UUID と Major グループ内での識別子 – 16bit

● iBeacon への Proximity UUID, Major, Minor の設定方法

iBeacon への設定は iBeacon デバイスのメーカーが提供する設定Appを利用します。

※Aplix、Estimote、それぞれの設定App

[wc_row] [wc_column size=”one-fourth” position=”first”]

[/wc_column] [wc_column size=”one-fourth”]

[/wc_column] [wc_column size=”one-half” position=”last”]

 

[/wc_column] [/wc_row]

● 設定の例(便宜上 Proximity UUID を128bit で表現していません)
パターンA

設置場所 Proximity UUID Major Minor
1F 展示品A UUID01 1 1
1F 展示品B UUID01 1 2
2F 展示品A UUID01 2 1

このパターンでは建物の階ごとに Major の値を変えています。

パターンB

設置場所 Proximity UUID Major Minor
1F 展示品A UUID01 1 1
1F 展示品B UUID01 1 2
2F 展示品A UUID02 1 1

このパターンでは建物の階ごとに Proximity UUID の値を変えています。

RangeBeacons 関数を利用するにあたって好ましいのはパターンAです。
パターンBの場合は 1F と 2F で UUID が異なるため、RangeBeacons 関数で2回の検索を行う必要があります。

同じ場所や同じ目的で設置する iBeacon では、Proximity UUID を同じ値に設定し、Major をカテゴリ分け(建物・階層等)に使い、Minor を識別子(展示品A,B等)に使うのがベストプラクティスと言えるでしょう。

● RangeBeacons 関数の各引数の設定値

UUID:設定Appで設定した値を設定します(省略不可)

タイムアウト:お好みで。省略時は5秒に設定されます。

Major:Major を指定して検索する場合のみ指定します。

Minor:Minor を指定して検索する場合のみ指定します。

タイムアウトを大きく設定すると「iBeacon の検索中…」が表示される時間が長くなります。
極端に小さく設定すると検索の精度が落ち、前に検索した iBeacon の情報が表示されたり、正しい距離が測定されなかったりします。
ユーザーへの表示時間と精度のバランスを見極めて設定しましょう。

 
ブログ一覧へ