BLEが開発した携帯電話検索iBeacon基地局

1422 ワード

BLEが開発した携帯電話検索iBeacon基地局
Android,BLE,iBeacon基地局
前回Android携帯電話とBLE端末間の通信について話しましたが、最も一般的なBLE端末はアップル社が提唱しているiBeacon基地局であるはずです.iBeacon技術はBLEに基づいており、放送を通じて対外的にメッセージを送信するのが特徴で、携帯電話はiBeacon基地局に接続する必要がなくても情報を取得することができ、現在は主に室内の位置決めとマーケティング情報のプッシュに用いられ、BLEが発行した放送に特定の情報を持ってiBeaconと識別されている.iOSでiBeaconを使用するにはpassbookでiBeaconのUUIDと対応する文字の紹介を登録する必要がありますが、AndroidではpassbookのようなシステムレベルのバックグラウンドBluetooth検索サービスはありません.このようなサービスは開発者が自分で行う必要があります.今回はAndroid携帯電話の基地局検索とiBeacon基地局パラメータの表示についてお話しします.
iBeacon基地局の検索は難しくないが、核心はBluetoothAdapterにある.LeScanCallback()のonLeScan(final BluetoothDevice,int rssi,byte[]scanRecord)ではiBeaconを識別する情報はscanRecord配列にある.に従ってhttps://github.com/RadiusNetworks/android-ibeacon-service/blob/master/src/main/java/com/radiusnetworks/ibeacon/IBeacon.java、iBeaconが次のiBeaconでプレフィックスを固定しているかどうかを識別します.
// AirLocate:
// 02 01 1a 1a ff 4c 00 02 15 # Apple's fixed iBeacon advertising prefix
// e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon profile uuid
// 00 00 # major 
// 00 00 # minor 
// c5 # The 2's complement of the calibrated Tx Power
iBeaconのUUIDとBLEのService、Characteristic、DescriptorのUUIDは大丈夫ですが、iBeaconのUUIDは放送時に発行され、Apple自身が定義した基準ですが、Service、Characteristic、DescriptorはBLE端末に接続してから得られるもので、BLE標準です.
本明細書のコードの実行結果は以下の通りであり、rssiは距離判断に使用できるが、このモジュールのtxPowerは正確ではないため、距離測定は意味がない.