Android上でiBeacon SDK

ibeacon sdk

建物は現在、熱く議論されても、内部の位置に依存するユーザーとの対話を可能にするビーコンのための可能なユースケースやビジネスモデル. 店舗内の広告と割引, モバイル決済, ナビゲーション, 公共交通機関, 公共の建物や博物館やホームオートメーションにおける局在は氷山のほんの先端です. データのそしてもちろんの遍在コレクション – 新しいと正確な位置情報を持ちます. iBeacon技術についてもっと学ぶ前に, 我々はまた、記事でiBeacon SDKに言及します.

誇大広告とは何ですか?

Bluetoothの低エネルギーに基づいて、アップルが開発したiBeaconプロトコルは、さまざまなデバイスでサポートされています. 記事はiBeaconsとBluetooth低エネルギーを説明し、iBeaconsとアプリの場所依存性相互作用を示すために、位置依存買い物リストのためのAndroidアプリを開発する例を使用しています. 実装はMOKOSmart iBeacon SDKに基づいています.

iBeacon, ブルートゥース 4.0, BLE, スマート. WOT?

iBeaconのための基本的な技術は、Bluetoothです. Bluetoothの低エネルギー (BLE), これは、多くの場合、Bluetooth対応のスマート・マーケティング・ラベルと呼ばれています, バージョンに含まれています 4.0 Bluetooth規格の. BLEは、Bluetoothクラシックと呼ばれる以前のバージョンとの下位互換性がありません. ブルートゥース 4.0 標準に準拠したデバイスは、1つのまたは両方のバリアントを実装しなければならないことを指定します, 即ち. 低エネルギーやクラシック.

BLEは、iPhoneなど、ほぼすべての現在のスマートフォンに実装されています 4+ そして、サムスンギャラクシー 3+. AN iPhoneはiBeacon信号の受信機の両方として機能することができると – アンドロイドとは異なり、 – 持っています ビーコン 自体. Androidのは、APIバージョンからBLEドライバが含まれています 18, 即ち. アンドロイド 4.3. ついでに, 現在のコンピュータは、BLE対応しています. Windowsで, しかしながら, ドライバは、Windowsからのボード上にあります 8 そして周りの2011年半ば以来の, BLEは、Appleのコンピュータ上で利用されています.

BLEは、心拍数モニタと玩具ヘリコプターなどの周辺機器の様々なサポートを継続します, 温度計, フィットネス機器や歯ブラシ, はい, 歯ブラシやスニーカー.

iBeaconsに関連してセンサであり、興味深いです

テキサス・インスツルメンツのタグ, iBeaconとしての機能に加えて、温度を測定することができます, 湿度, 圧力, 加速. センサータグはまた、ジャイロスコープが付属しています, 磁力計, そして2つのハードウェアボタン. 遠隔制御プレゼンテーションに理想的なデバイスの送信及び話者の手の水分と温度を表示しながら. 私は私の次の砂場プロジェクトは、舞台恐怖症-O-マットになると思います. あなたは公式のBluetoothウェブサイト上のデバイスの詳細なリストを見つけることができます.

GATT準備

交換データへのデバイスによって使用される通信モデルはガットと呼ばれ – ジェネリック属性プロファイル. GATTは、クライアントとサーバーの役割を定義します. クライアントは、サービスを介してサーバからデータを要求します. サービスグル​​ープ数原子のキー/値のペア, 特性と呼ばれています. サービスおよび特性の両方がUUIDを経由して特定され、さらに説明を含めることができます. サービスとその特性をプロファイルの形でカタログ化されています; 仕様では、ヘルスケアの分野からそれらの全範囲を定義します, スポーツとフィットネスと – 我々の場合は興味深いですで – 近接センシング. 個々のプロファイルとそのサービスおよび特性がGATTの仕様下のBluetooth開発者ポータルで見つけることができます.

SDK ibeaconガット

ビーコンに到着

だから、iBeaconsは何ですか? iBeaconは非常に単純な技術であり、 (アプリケーションとの位置依存の相互作用を可能にApple社の商標. ビーコン信号は、ビーコンの識別及び受信強度が含まれ、それにインストールされたアプリケーションによってBLE対応機器で受信して処理することができる信号を送出します. iBeacons自体があります, 故に – プレスで不正確な声明に反します – コンテンツの配信や顧客の行動を追跡することができません. これは、受信アプリケーションの責任であるため、開発者.

iBeacon IRL

ドイツのiBeaconsの大規模な導入は、おそらく来て、長い時間となります, しかし、米国とオランダからのいくつかの例があります. 例えば, メジャーリーグは装備しています 28 iBeaconsや用途にそれらを持つスタジアム, とりわけ, MLBアプリでのチェックインについて “アットザボールパーク”.

ショーケースは、アントワープでルーベンスの家で実装されました, その申し出、このような訪問者のための絵画やジオキャッシングゲームのX線等の背景情報.

大きさの点では典型的な例は、Apple自身から来ています. オーバー 250 アップルストアはiBeaconsが装備されています. Apple Storeのアプリとの組み合わせで, 位置依存のメッセージが店にいるバイヤーに送られ、. しかしながら, 相互作用の可能性は現在、非常に限られているように見えます: 最初のレビューは2つのだけ異なるの報告します (そして、はかなり一般的な) 彼らは受け取っていたメッセージ. 特別オファーや近く提供されていなかった個々の製品に関する具体的な情報.

機能

iBeacon SDKは、独立したBLEプロファイルを使用していません, ではなく、Bluetoothの広告パッケージ, 即ち. 放送パッケージ, Bluetoothデバイスを発見するために使用されています. あなたは、パッケージの正確な構造に興味を持っている場合, あなたはこれを読むことができます, 例えば, アダムWarskiのブログに.

このようなパッケージは、GATTを介して設定することができ、一定の間隔で送信されます. これは、ビーコンのUUIDが含まれています, 典型的には製造業者によって事前に設定されています. すべてMOKOSmartビーコンは、同じUUIDを送るように、. メジャーとマイナーのIDは、個々のビーコンを識別するために使用されています. 主なIDが表すことができます, 例えば, お店の支店やフランチャイズチェーンのレストラン, マイナーIDが単一の棚やテーブル.

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

IBeacon SDKは、この情報とアプリとの相互作用のための二つの概念を提供しています: モニタリングの範囲と地域. 範囲内のとき, ビーコンまでの距離が決定されます. 上記の不正確さに起因します, これはわずか3段階で行わ. “即座” 数センチメートルの距離であり、, “近く” 数メートルで、 “遥か” 10メートル以上の距離です。. 受信アプリがアクティブな場合測距のみ可能です.

これは、地域の監視のために必要ではありません. このモードでは, 非アクティブなアプリはまた、1つまたは複数のビーコンによって定義された領域に入るか、出るときに通知することができます. 遅くとも今では広告や小売のためのこの技術は魅力的にするもの明らかになりつつあります. 加えて, ほとんどのビーコンについて, 送信強度および間隔は、局所条件に基づいてバッテリの寿命を最適化するために構成することができます.

“ほとんどのビーコン” iBeaconsの複数のメーカーが市場に存在することを意味します. 実際には, かなりの数があります: MOKOSmart, Kontakt.io, アイス, Estimote, そして、ジンバル. ハードウェアに加えて、, これらのメーカーはまた、ビーコンの管理のためにiBeacon SDKサービスとクラウドソリューションを提供します. 私たちの間で愛好家は、ラズベリーパイかのArduinoを使用して、比較的少ない労力で送信機iBeacon自分自身を設定することができます.

リストを点滅

私たちは、実装例について、次のような状況を想定してみましょう: 開発者は、土曜日の朝にスーパーマーケットであります. 空腹の子供たちは、家庭や学校でベークセールがあり、午後に待っています. だけにして週末は本当に開始します. 急いでするので、十分な理由. 不運にも, 買い物リストは長くないスーパーマーケットのレイアウトに適合されています. スーパーマーケットは、異なる部門でiBeaconsが装備されていた場合, 買い物リストアプリは、適切なエントリを強調表示し、大幅のストレスレベルを減らすことができます (もちろん、完全に架空の) デベロッパー.

我々のアプリは、Bluetoothで通信しているので、, 我々は最初のAndroidマニフェストでBLUETOOTHとBLUETOOTH_ADMIN権限が必要です. iBeaconsと対話するEstimoteのAPIが提供するサービスを利用できるようにするために, 我々はまた、それが知られて作ると私たちのlibs /ディレクトリにダウンロードされたAPIを配置する必要があります.

私たちのプロトタイプはシンプルで構成されてい, 予め充填されたリストと事前に定義された領域, 即ち. 私たちのスーパーマーケットでの部門. リストのエントリは、それが割り当てられている地域を知っています. 私たちの例では、, 私たちは、各地域に1つのビーコンをのみを割り当てます. 1つの領域にビーコンのリストを組み合わせることも可能です. 主な活動は、アダプタに現在の領域と転送この情報を認識するための責任があります, リスト項目を強調表示するための責任があります. 加えて, 我々は、追加のハードウェアなしで私たちのUIのテスト可能にするためにビーコンずに活性領域を選択するオプションを追加します.

活動の上でメソッドを作成します。, 我々は我々のアプリのためにMOKOSmartからビーコンマネージャーをインスタンス化. 私たちは、アダプタに知られている現在の領域を作り、ビーコンスキャンする間隔を定義することにより、監視地域のリスナーを使用します. 例では、, 私たちは、その後、1秒がスキャンされるべきであると定義し、 250 MSは待機しなければなりません. これらの値は、テストで迅速な結果を得るために、比較的積極的に選択され、. 現実に, 応答性とのバランスが難しい対. バッテリ寿命を満たすために、. このプロトタイプで, 我々はまた、ダミーの値を持つ私たちの買い物リストを埋めます. 私たちは、開始または上で監視を停止 () スタートまたはonStop () 主な活動の方法.

ITEMLIST

アダプターはandroid.widget.Arrayアダプタの誘導体として実装され、GETのビューを上書きしています () 方法, 表示される行ごとに呼び出されます. アイテムのタイトルはレイアウトで定義されたレビューの最初の行に書かれています, 第二の割り当て領域で.

リストで見ることができます 1, 入力された領域は、上で入力した地域でアダプタに転送され、 () MonitoringListenerのコールバック, 私たちのBeaconManagerに割り当てられています: アイテムリストアダプタ. 隔離 (領域). getViewメソッドを呼び出すとき (), 行のエントリの領域は、現在の領域に一致するかどうか、このチェック. このような場合は, その色のラインの背景. さらに、またはあるいは, 一つは、リストをソートすることにより、最初に現在のゾーンのエントリを入れることができます.

アプリケーションのコードは明らかです; それはアプリでiBeacon信号を受信し、それらを処理するために多くの実装の手間がかかりません。. 彼らは直感的に使用できるように、レンジング及び監視iBeacon概念はMOKOSmart iBeacon SDKにマッピングされます. アプリの完全なソースコードはGitHubの上で見つけることができます.

結論と展望

私たちは、MOKOSmart iBeacon SDKを使用してiBeaconsと対話することは行うのは簡単であることを見ました. だから私は、実装の技術で大きなハードルを期待していません, ではなく、ビーコンの展開と送信電力の調整で. 位置が変化した場合、これらのパラメータは、アプリケーションの応答性に直接影響を与えます. とにかく, バランシングは困難でなければなりません.

特に興味深いのために, 例えば. B. ホームオートメーションの分野で, 私は、センサーとiBeaconsの組み合わせを考えます, 前述したテキサス・インスツルメンツからセンサータグのように、. EstimoteもEstimoteステッカーを持つ市場での動きと温度センサーを備えた携帯ビーコンを起動します. 最初の開発者プレビューが10月末に配信されている必要があります 2014, しかし、何のキットは、年末までに出荷されませんでした 2014.

これは、「屋内ナビゲーション」アプリケーション領域は、この技術で確実にマッピングすることが可能かどうかを見守らなければなりません. 干渉因子にブルートゥース信号の感受性に起因, 部屋プランで三角測量を使用して、対応する領域および位置計算のiBeacon信号との強い照明が必要であろう. 適切な解決策はMOKOSmartによって提供されています (屋内ナビゲーションiBeacon SDK) そして、このようなLabWerkなどの様々な他のメーカー, しかし著者は、任意の実用的なレポートを認識していません.

アプリの開発はiBeaconsとの相互作用を持ちます, セキュリティとデータ保護の側面も考慮しなければなりません. 信号の単純さのために, iBeaconはなりすましの傾向があります, これは開発中に忘れてはなりません. このような現在位置と、ユーザの行動に基づいて収集することができる移動プロファイルなどのデータ保護のための高い必要性を有しています.

MOKOSMART iBeacon SDK

ibeacon SDKソリューション