Android 上の iBeacon SDK

目次
アイビーコン SDK

建物内でも位置情報に基づいたユーザーインタラクションを可能にするビーコンのユースケースとビジネスモデルについて、現在、活発な議論が交わされています。店舗内広告や割引、モバイル決済、ナビゲーション、公共交通機関、公共施設や美術館における位置情報の特定、ホームオートメーションなどは、そのほんの一角に過ぎません。そしてもちろん、あらゆる場所で収集されるデータの活用も、今や新たな、そして正確な位置情報を伴うものとなっています。iBeaconテクノロジーについてさらに詳しく知る前に、この記事ではiBeacon SDKについても触れておきます。

何が誇大宣伝ですか?

AppleがBluetooth Low Energyをベースに開発したiBeaconプロトコルは、様々なデバイスでサポートされています。この記事では、iBeaconとBluetooth Low Energyについて解説し、位置情報に基づいた買い物リストを提供するAndroidアプリの開発例を用いて、アプリとiBeaconの位置依存的な連携を示します。実装はMOKOSmart iBeacon SDKに基づいています。

iBeacon、Bluetooth 4.0、BLE、SMART。何ですか?

iBeaconの基本技術はBluetoothです。Bluetooth Low Energy(BLE)は、Bluetooth Smartというマーケティングラベルでもよく知られており、Bluetooth規格バージョン4.0に含まれています。BLEは、Bluetooth Classicと呼ばれる以前のバージョンとの下位互換性はありません。Bluetooth 4.0では、規格準拠デバイスはLow EnergyまたはClassicのいずれか、あるいは両方のバージョンを実装することが必須となっています。

BLEは、iPhone 4+やSamsung Galaxy 3+など、現在発売されているほぼすべてのスマートフォンに実装されています。iPhoneはiBeacon信号の受信機としてだけでなく、Androidとは異なり、 ビーコン Androidでは、APIバージョン18(Android 4.3)以降からBLEドライバが搭載されています。ちなみに、現在のコンピューターもBLEに対応しています。ただし、WindowsではWindows 8以降でのみドライバが搭載されており、Appleコンピューターでは2011年半ば頃からBLEが利用可能になっています。

BLE は、心拍数モニターやおもちゃのヘリコプター、体温計、フィットネス機器、歯ブラシなど、さまざまな周辺機器をサポートし続けています。そう、歯ブラシとスニーカーです。

iBeaconsとの関連で興味深いのはセンサーである

Texas Instruments社のセンサータグは、iBeaconとしての機能に加え、温度、湿度、気圧、加速度を測定できます。このセンサータグには、ジャイロスコープ、磁力計、そして2つのハードウェアボタンも搭載されています。講演者の手の湿度と温度を送信・表示しながら、プレゼンテーションを遠隔操作するのに最適なデバイスです。次の砂場プロジェクトは、ステージ恐怖症対策マットにしようと思っています。デバイスの詳細なリストは、Bluetoothの公式ウェブサイトでご覧いただけます。

GATT対応

デバイスがデータ交換に使用する通信モデルは、GATT(Generic Attribute Profile)と呼ばれます。GATTはクライアントとサーバーの役割を定義します。クライアントはサービスを介してサーバーにデータを要求します。サービスは、特性と呼ばれる複数のアトミックキー/値ペアをグループ化します。サービスと特性はどちらもUUIDによって識別され、詳細な説明を含めることもできます。サービスとその特性はプロファイルの形式でカタログ化されており、仕様ではヘルスケア、スポーツ、フィットネス、そして(ここで興味深い)近接センサーといった分野にわたる幅広いサービスが定義されています。個々のプロファイルとそのサービスおよび特性は、Bluetooth開発者ポータルのGATT仕様で確認できます。

ガット アイビーコン SDK

ビーコンに到着 

では、iBeacon とは何でしょうか? iBeacon は、アプリケーションとの位置依存のインタラクションを可能にする非常にシンプルなテクノロジー (Apple の商標) です。ビーコンは、BLE 対応デバイスで受信でき、そこにインストールされているアプリケーションで処理できる信号を送信します。信号には、ビーコンの識別情報と受信強度が含まれます。したがって、iBeacon 自体は、報道されている不正確な記述とは反対に、コンテンツを配信したり、顧客の行動を追跡したりすることはできません。これは受信側アプリケーション、つまり開発者の責任です。

iBeacon 現実世界

ドイツにおけるiBeaconの大規模導入にはおそらく長い時間がかかるでしょうが、米国とオランダではいくつかの事例があります。例えば、メジャーリーグベースボール(MLB)は28のスタジアムにiBeaconを設置し、MLBアプリ「At the Ballpark」のチェックインなどに活用しています。

アントワープのルーベンスハウスでは、絵画のX線写真やジオキャッシングゲームなどの背景情報を来館者に提供するショーケースが設置されました。

規模の面で代表的な例はApple自身です。250以上のApple StoreにiBeaconが設置されています。Apple Storeアプリと連携することで、店舗にいる顧客に位置情報に基づいたメッセージが送信されます。しかし、現時点では利用可能なインタラクションは非常に限られているようです。最初のレビューでは、受け取ったであろうメッセージはXNUMX種類(しかも非常に一般的なもの)のみと報告されています。特別なオファーや、近くにある個々の製品に関する具体的な情報は提供されていません。

Functionality

iBeacon SDKは、個別のBLEプロファイルではなく、Bluetoothデバイスの検出に使用されるBluetoothアドバタイジングパッケージ(ブロードキャストパッケージ)を使用します。パッケージの正確な構造にご興味がある場合は、例えばAdam Warskiのブログをご覧ください。

このようなパッケージは、GATTで設定可能な一定の間隔で送信されます。このパッケージにはビーコンのUUIDが含まれており、通常はメーカーによって事前に設定されています。そのため、すべてのMOKOSmartビーコンは同じUUIDを送信します。また、メジャーIDとマイナーIDは個々のビーコンを識別するために使用されます。メジャーIDは、例えば店舗の支店やフランチャイズチェーンのレストランを表し、マイナーIDは棚やテーブルを表します。

さらに、広告パッケージには信号強度が含まれており、これを使用して受信機とビーコンの距離を測定できます。ただし、家具や人などの空間的な障害物によって信号が遮られる可能性があるため、高い精度は期待できません。

IBeacon SDKは、アプリとこれらの情報のやり取りに、測距と領域監視という2つの概念を提供します。測距では、ビーコンまでの距離を測定します。前述の不正確さを考慮し、この処理は3段階に分かれています。「すぐ近く」は数センチメートル、「近く」は数メートル、「遠く」は10メートル以上の距離です。測距は、受信アプリがアクティブな場合にのみ可能です。

地域監視には必要ありません。このモードでは、非アクティブなアプリが1つ以上のビーコンで定義された地域に出入りする際にも通知を受け取ることができます。この技術が広告や小売業にとって魅力的である理由は、既に明らかになっています。さらに、ほとんどのビーコンでは、送信強度と送信間隔を設定できるため、地域の状況に応じてバッテリー寿命を最適化できます。

「ほとんどのビーコン」とは、市場に複数のiBeaconメーカーが存在することを意味します。実際、MOKOSmart、Kontakt.io、Gelo、Estimote、Gimbalなど、かなりの数のメーカーが存在します。これらのメーカーは、ハードウェアに加えて、ビーコン管理用のiBeacon SDKサービスとクラウドソリューションも提供しています。趣味でiBeaconを使っている人なら、Raspberry PiやArduinoを使えば、比較的簡単にiBeaconトランスミッターを自分で設置できます。

点滅リスト

実装例として、次のような状況を想定してみましょう。開発者は土曜日の朝、スーパーマーケットにいます。お腹を空かせた子供たちは家で待っており、午後には学校でベークセールが行われます。週末の始まりはそれからです。ですから、急ぐのは当然です。ところが残念ながら、買い物リストは長く、スーパーマーケットのレイアウトに合っていません。もしスーパーマーケットの各売り場にiBeaconが設置されていれば、買い物リストアプリが適切な項目をハイライト表示し、(もちろん完全に架空の)開発者のストレスを大幅に軽減できるでしょう。

アプリはBluetoothで通信する必要があるため、まずAndroidマニフェストにBLUETOOTHとBLUETOOTH_ADMINの認証を追加する必要があります。Estimote APIが提供するサービスを利用してiBeaconと通信できるようにするには、Estimote APIを有効化し、ダウンロードしたAPIをlibs/ディレクトリに配置する必要があります。

私たちのプロトタイプは、シンプルな事前入力リストと、スーパーマーケットの売場といった定義済みの地域で構成されています。リストのエントリは、どの地域に割り当てられているかを認識しています。この例では、各地域に1つのビーコンのみを割り当てています。複数のビーコンリストを1つの地域にまとめることも可能です。メインアクティビティは現在の地域を認識し、その情報をアダプタに転送します。アダプタはリストのエントリをハイライト表示します。さらに、ビーコンなしでアクティブな地域を選択できるオプションを追加することで、追加のハードウェアなしでUIをテストできるようにしています。

アクティビティの on Create メソッドでは、MOKOSmart からアプリ用のビーコンマネージャーをインスタンス化します。現在のリージョンをアダプターに通知し、ビーコンスキャンの間隔を定義することで、リージョン監視用のリスナーを使用します。例では、250秒間スキャンし、その後XNUMXミリ秒待機するように定義しています。これらの値は、テストで迅速な結果を得るために比較的アグレッシブに選択されています。実際には、応答性とバッテリー寿命のバランスを取るのが難しく、このプロトタイプでは、ショッピングリストにダミー値も入力します。監視の開始と停止は、メインアクティビティの on() メソッドまたは onStop() メソッドで行います。

アイテムリスト

このアダプタはandroid.widget.Array Adapterの派生クラスとして実装されており、表示する各行ごとに呼び出されるgetView()メソッドをオーバーライドします。アイテムのタイトルは、レイアウトで定義されたレビューの1行目に表示され、2行目には割り当てられた領域に出力されます。

リスト1に示すように、入力されたリージョンは、MonitoringListenerのon Entered Region()コールバックでアダプタに転送されます。このアダプタは、BeaconManagerのアイテムリストAdapter.segregation(region)に割り当てられています。getView()を呼び出すと、行内のエントリのリージョンが現在のリージョンと一致するかどうかが確認されます。一致する場合、行の背景に色が付きます。これに加えて、または代わりに、リストをソートすることで、現在のゾーンのエントリを先頭に配置することもできます。

アプリケーションのコードは明確で、iBeacon信号を受信してアプリ内で処理するのに多くの実装作業は必要ありません。iBeaconの測距と監視の概念は、MOKOSmart iBeacon SDKにマッピングされているため、直感的に使用できます。アプリの完全なソースコードはGitHubでご覧いただけます。

結論と展望

MOKOSmart iBeacon SDKを使えばiBeaconとの連携は簡単に行えることが分かりました。そのため、実装技術面では大きなハードルはないと考えていますが、ビーコンの配置と送信電力の調整には大きなハードルがあると考えています。これらのパラメータは、位置が変わった際のアプリケーションの応答性に直接影響します。いずれにせよ、バランス調整は難しいでしょう。

特に興味深いのは、例えばホームオートメーションの分野で、iBeaconとセンサーの組み合わせです。前述のTexas InstrumentsのSensor Tagがその例です。Estimoteは、モーションセンサーと温度センサーを搭載したモバイルビーコンをEstimote Stickersとともに市場に投入する予定です。最初の開発者向けプレビューは2014年2014月末に提供される予定でしたが、XNUMX年末までにキットは出荷されませんでした。

この技術を用いて「屋内ナビゲーション」アプリケーションエリアを堅牢にマッピングできるかどうかは未だ不明です。Bluetooth信号は干渉要因の影響を受けやすいため、iBeacon信号による対応エリアの強力な照明と、間取り図を用いた三角測量による位置計算が必要になります。MOKOSmart(屋内ナビゲーションiBeacon SDK)やLabWerkなどのメーカーから適切なソリューションが提供されていますが、筆者は実用化に関する報告を知りません。

iBeaconと連携するアプリの開発では、セキュリティとデータ保護の側面も考慮する必要があります。iBeaconは信号が単純なため、なりすましの被害を受けやすく、開発段階ではこの点を念頭に置く必要があります。また、ユーザーの行動に基づいて収集される現在位置や移動プロファイルなどのデータも、高い保護レベルが求められます。

 

によって書かれた -
YK Huangの写真
YK ファン
YKは、MOKOSMARTのR&D部門で40年以上のスマートデバイス開発経験を持つ、ベテランのプロダクトマネージャーです。PMPとNPDPの認定資格を取得しており、クロスファンクショナルチームのマネジメントに精通しています。データドリブンなインサイトを活用し、XNUMXを超えるコネクテッドプロダクトの立ち上げを成功させています。電子工学とエンジニアリングのバックグラウンドを持つYKは、複雑な技術的価値提案を、消費者向けアプリケーションと産業用アプリケーションの両方において、ユーザーフレンドリーなIoTソリューションへと変換することに長けています。
YK Huangの写真
YK ファン
YKは、MOKOSMARTのR&D部門で40年以上のスマートデバイス開発経験を持つ、ベテランのプロダクトマネージャーです。PMPとNPDPの認定資格を取得しており、クロスファンクショナルチームのマネジメントに精通しています。データドリブンなインサイトを活用し、XNUMXを超えるコネクテッドプロダクトの立ち上げを成功させています。電子工学とエンジニアリングのバックグラウンドを持つYKは、複雑な技術的価値提案を、消費者向けアプリケーションと産業用アプリケーションの両方において、ユーザーフレンドリーなIoTソリューションへと変換することに長けています。
この投稿を共有
MOKOSmart IoT デバイス ソリューションで接続ニーズを強化しましょう。