iOS7のiBeaconを使用した屋内ナビゲーション

IOS7はiBeaconサポートを導入します。 インターネットにはヘッダーがいっぱいです:

-iBeaconがiOS7の最も重要な機能である理由

-iBeaconは、ロケーションベースのアプリケーションの新しい時代を開きます

-iBeaconがNFCを殺す方法

-iBeaconとモバイル決済の未来



記者によると、これはモバイル決済、屋内ナビゲーション、顧客習慣の市場を変え、同時にNFCを殺すスーパーテクノロジーです。



猫の下で、iBeaconが実際に何であるか、どのように使用できるかオフィスをナビゲートするためのサンプルアプリケーションを紹介します。







iBeaconは、メジャーとマイナーの3つの近接パラメーターUUIDを送信するBluetooth Low Energyビーコンです。 iOS7を使用すると、このようなデバイスを簡単に操作できます。



近接UUIDは一意の128ビット識別子であり、会社または建物内のすべてのビーコンは同じpUUIDを持ちます。 majorminorは、同じpUUID内のビーコンに番号を付けるための16ビットの符号なし整数です。 これらはAppleの推奨事項です。これらのパラメーターには絶対に任意の値を設定できますが、推奨されるスキームの方が便利です。



EstimoteおよびKontaktからのビーコンの予約注文。





1つのビーコンは30ドルで、バッテリーで2年間働きます。 多くの企業は、iBeaconプロファイルをサポートするために製品を完成させています。 3ヶ月以内に10ドルの中国のカウンターパートが現れると思います。



iOSデバイスはビーコンとして機能することができます。これにより、新しいAPIを今すぐ試すことができます。



Core Location Frameworkには、CLBeacon、CLBeaconRegion、およびCLCircularRegionの3つのクラスが追加されました。 CLLocationManagerは、isRangingAvailable、rangedRegions、requestStateForRegion、startMonitoringForRegion、startRangingBeaconsInRegion、およびCLLocationManagerDelegateの対応するイベントを導入しました。 startMonitoringForRegionは、GPSリージョンだけでなくBluetoothもサポートするようになりました。 使用方法については、ドキュメントで詳しく説明しています



実際、新しいAPIには次の2つの可能性があります。

  1. startRangingBeaconsInRegionメソッドを使用して、特定のプロキシミティUUIDを持つ可視性ゾーン内のビーコンのリストを取得します(値majorまたはmajor / minorを指定することで検索を絞り込むことができます)。 APIは、ビーコンまでの距離(イミディエート、ニア、ファー)および距離誤差をメートルで決定します。
  2. 地域の監視。 ユーザーがビーコンのカバレッジエリアに出入りすると、didEnterRegion / didEnterRegionイベント(startMonitoringForRegionメソッド)が発生します。 さらに、監視は、アプリケーションがバックグラウンドにあるときでも機能し、イベントが発生すると、アプリケーションは起動されます。


データを使用して部屋のデバイス座標を取得することはできません 。 距離の精度に関する説明には、「ビーコンの正確な位置を特定するために距離を使用しないでください」と明示されています。 実験では、データが三角測量に適していないことを確認しています。



iBeaconsの可能なアプリケーション:

  1. 屋内ナビゲーション:各部屋にビーコンを掛けます(同じ近接UUID、フロア/部門の異なるメジャー、部屋の異なるマイナー)。 マップには、スマートフォンに最も近いビーコンが表示されます。
  2. 博物館のインタラクティブツアー:展示ごとに灯台を接着し、展示に近づくと追加情報を表示します。
  3. 市内の正確な位置。 建築物のモニュメントやオブジェクトにビーコンを掛けます。 街全体が博物館に変わります。
  4. 視覚障害者のためのナビゲーション。 ビーコンが検出されたら、ユーザーのいる場所と移動できる場所で音声メッセージを再生します。
  5. ロケーションゲームとクエスト。 たとえば、簡単なサルの検索デモ
  6. 店舗での割引とプロモーション。 ジーンズを渡し(ビーコンが棚に設置されています)、buy-two-pair-third-in-giftについてのメッセージを受け取ります。
  7. 機器のチンキ。 これが通常iBeaconに接続されているかどうかはわかりませんが、iOS7では、iPhoneに触れることでApple TVをセットアップできます。




iPhone 4s +、iPad 3+はビーコンのように機能します。 iOSデバイスのテストを使用して、オフィスの周りに簡単なナビゲーションを作成することにしました。 Xamarin.iOSをお持ちでない場合、またはアプリケーションをビルドしたい場合は、 Estimoteアプリをお試しください。 アプリケーションは新機能を示します(Bluetooth LEを搭載した2つのiOSデバイスが必要です)。



だから。 オフィスの地図:





ナビゲーションには、iOS7のビーコンが必要です。テストデバイスを入力し、キャビネット310、311、および312の中央に配置しました。合計で、3つのビーコンと1つの受信機が必要でした。





Xamarin AirLocateデモアプリケーションを基礎としてみましょう。 近接UUID、メジャーおよびマイナー(パラメーターは構成可能)のブロードキャストを有効にし、特定のpUUIDでアクセス可能なビーコンのリストを表示できます。



オフィスをナビゲートするためのアプリケーションコードはgithubで入手できます。 私はひどいコードについて謝罪したいだけです。私はマーケティング担当者であり、これが私の最初のiOSアプリケーションです。



ビーコンを同じ近接UUIDに設定し、majorをキャビネット番号に設定します。 ビーコンアクティベーションコード(バックグラウンドでは機能しません。自動ロックをオフにする必要があります):



CLBeaconRegion region = new CLBeaconRegion (uuid, major.UInt16Value, minor.UInt16Value, Defaults.Identifier); if (region != null) peripheralManager.StartAdvertising (region.GetPeripheralData (power));
      
      





AirLocateは、距離と精度を備えた利用可能なビーコンのリストを提供します。これは、312室の例です(310のビーコンは終了しません)。





キャビネットの上に長方形を描くMapViewControllerを作成します。その数は、最も近いビーコンのメジャーに含まれています。

 locationManager = new CLLocationManager (); locationManager.DidRangeBeacons += HandleDidRangeBeacons; locationManager.StartRangingBeacons (new CLBeaconRegion(Defaults.SupportedProximityUuids[0], "office_beacon"));
      
      





 void HandleDidRangeBeacons (object sender, CLRegionBeaconsRangedEventArgs e) { drawRegion (e.Beacons [0]); }
      
      





 switch ((int)(beacon.Major)) { case 310: path.AddRect(roomCoords[0]); break; case 311: path.AddRect(roomCoords[1]); break; case 312: path.AddRect(roomCoords[2]); break; }
      
      



(ひどいコードについては再度ごめんなさい)。



これで、オフィスを歩き回ってテストできます。





うまくいく!



キャビネットを決定する精度は優れていますが、更新速度はあまりよくありません。通常の手順で別のオフィスに行くと、マップは10〜30秒で更新されます。



アプリケーションは改善する価値があります。 精度のしきい値を追加して、近隣のオフィスと灯台のない廊下で、マップがビーコン付きのキャビネットを描画しないようにします。 そして、長方形ではなく、正確な半径の円を描きます。 しかし、デモンストレーションの目的には十分です。



一般に、iBeaconに革命的なものはありませんが、Appleは間違いなく位置情報ベースのアプリケーションの開発に強い弾みをつけました。 iOS7の場合、それらは12行のコードで記述されています。




estimote.comのヘッダーの写真、メーカーのWebサイトの灯台の画像。



habr-blogを購読します。 毎週木曜日、モバイル開発、マーケティング、モバイルスタジオビジネスに関する役立つ記事。



All Articles