iBeaconを簡単に検知し、イベント発火のトリガーとすることを可能にするXamarin用のNuGetパッケージです。
Beahatという名前は、iBeacon handling as a trigger の略です。
iOS | Android | UWP |
---|---|---|
8.0以上 | 4.4以上 | 制限なし |
Beahatを使う各プラットフォームのプロジェクトで、以下の通りパーミッションの設定を行ってください。
-
iOS
Info.plistに、以下のどちらかのkeyを追加してください。
- NSLocationWhenInUseUsageDescription (Location When In Use Usage Description)
- NSLocationAlwaysUsageDescriptionProperty (Location Always Usage Description Property)
また、Bluetoothのオン/オフを判定する処理を使用するためには、以下のkeyを追加してください。
- NSBluetoothPeripheralUsageDescription (Bluetooth Peripheral Usage Description)
-
Android
Androidマニフェスト(AndroidManifest.xml)で、以下の2つのアクセス許可を追加してください。
- BLUETOOTH
- BLUETOOTH_ADMIN
-
UWP
Package.appxmanifestの機能タブで、以下の項目のチェックをオンにしてください。
- Bluetooth
同ソリューション内にあるBeahatTutorialがサンプルアプリです。 Xamarin.Formsで作成しています。
-
bool SupportsBluetooth
端末がBluetooth機能(iOSの場合は位置情報サービスも含む)をサポートしているかどうかを取得します。
サポートしている場合はtrue、そうでない場合はfalseを返します。 -
bool IsReadyToUseBluetooth
端末のBluetooth機能がオンにされているかどうかを取得します。
端末のBluetooth機能がオンにされている場合はtrue、そうでない場合はfalseを返します。
端末がBluetoothをサポートしていない場合、常にfalseを返します。 -
bool CanUseLocationForDetectBeacons
iBeacon検知のために必要な位置情報の使用が許可されているかどうかを取得します。
位置情報の使用が許可されている場合はtrue、そうでない場合はfalseを返します。
AndroidとUWPではiBeaconを検知するために位置情報利用の許可が必要ないため、常にtrueを返します。 -
void RequestToTurnOnBluetooth
端末のBluetooth機能がオフにされている場合に、端末のBluetooth機能をオンにするためのダイアログを呼び出します。
UWPでは対応する機能がないため、何も処理は行われません。
端末がBluetoothをサポートしていない場合、例外BluetoothUnsupportedExceptionをthrowします。 -
void RequestToAllowUsingLocationForDetectBeacons
位置情報機能がオフにされている、あるいは許可されていない場合に、位置情報の使用許可をユーザーに求めるダイアログを表示します。
AndroidとUWPではiBeaconを検知するために位置情報利用の許可が必要ないため、何も処理は行われません。 -
void AddObservableBeacon
検出対象とするiBeaconを追加します。
同じiBeaconに対してAddObservableBeaconWithCallbackメソッドを実行することで、検出時に実行する処理を後から追加することが可能です。 -
void AddObservableBeaconWithCallback
検出対象とするiBeaconと、検出時に実行したい処理を追加します。
同じiBeaconに対してこのメソッドを続けて実行することで、検出時に実行する処理を複数設定することが可能です。 -
void ClearAllObservableBeacons
AddObservableBeaconやAddObservableBeaconWithCallbackで追加した検出対象ビーコンや実行処理を全て消去します。
-
void InitializeDetectedBeaconList
検出されたiBeaconのリスト(DetectedBeaconListFromClosestApproachedInfo、DetectedBeaconListFromLastApproachedInfo)を初期化します。
-
void StartScan
iBeaconのスキャンを開始します。 端末がBluetoothに対応していない場合、例外BluetoothUnsupportedExceptionをthrowします。
端末のBluetooth機能がオフにされている場合、例外BluetoothTurnedOffExceptionをthrowします。
iOSのみ、位置情報サービスの使用が許可されていない場合、例外LocationServiceNotAllowedExceptionをthrowします。 -
void StopScan
iBeaconのスキャンを停止します。
-
bool IsScanning
スキャン実行中はtrue、スキャン停止中はfalseを返します。
-
List<iBeacon> BeaconListFromClosestApproachedEvent
直近のスキャン、あるいは実行中のスキャンで検出されたiBeaconの情報を持つリストです。
1種類のiBeaconにつき、1つの要素を持ちます。同じiBeaconを複数回検出した場合、最も近付いたときの情報がこのリストに残されます。 -
List<iBeacon> BeaconListFromLastApproachedEvent
直近のスキャン、あるいは実行中のスキャンで検出されたiBeaconの情報を持つリストです。
1種類のiBeaconにつき、1つの要素を持ちます。同じiBeaconを複数回検出した場合、最後に検出したときの情報がこのリストに残されます。
-
Beahatのインスタンスを取得する(クラスメソッド"Beahat.Current"による取得と、IPlatformInitializerによるインジェクションの両方に対応しています)。
-
メソッドAddObservableBeaconWithCallbackで、検出対象のiBeaconと、検出時に実行させたい処理を登録する。
-
メソッドStartScanで、iBeaconの検出を開始する。
-
検出できたiBeaconの近接状況は、DetectedBeaconListFromClosestApproachedInfoを参照することで把握できる。
-
検出を停止したくなったら、メソッドStopScanを実行する。
アンライセンスです。
著作権を放棄しているので、利用・改変・再配布等自由にご利用ください。
Beahatを利用することによるトラブル等に関しては自己責任でお願いします。