システム要件
測位情報を受信できない端末では SDK が動作を停止し、稼働中のアプリには影響しません。
SDK のインストール
1
2
Dart コードでインポートします。
Dart
iOS 設定
1
Swift Package Manager を有効にする
2
デプロイターゲットを上げる
ios/Runner.xcodeproj の IPHONEOS_DEPLOYMENT_TARGET を 18.0 に上げます。3
権限説明文を追加する
Android 設定
1
MainActivity を変更する
SDK の権限リクエストには
ComponentActivity が必要なため、MainActivity を FlutterFragmentActivity に変更します。MainActivity.kt
2
ビルドバージョンを合わせる
android/app/build.gradle.kts
SDK の初期化
測位エンジンを稼働させるための初期化を開始します。
すべての呼び出しは
Future、イベントは Stream です。
Dart
プロフィール
ユーザー(アカウントまたは端末)1 人の動線はプロフィール単位で管理されます。プロフィール ID は一意で、紛失すると復元できないため保管に注意してください。
プロフィールの作成
新しいプロフィールを作成するとプロフィール ID が返ります。属性はレポート・指標のセグメントとして使われ、Key-Value に制約はありません。発行された ID はアプリ(または自社サーバー)に保管し、起動のたびに測位前に
identify で紐付けます。
Dart
プロフィール情報の取得
プロフィール ID から、保存されたパーソナライズ属性を取得します。Dart
プロフィール情報の更新
パーソナライズ属性はまるごと置き換えられます。更新後、以前の値は削除され、元に戻せません。Dart
プロフィールの削除
パーソナライズ属性を削除します。削除した属性は元に戻せません。Dart
建物・フロアの選択
測位座標を受信するには、ロケーターが設置された建物とフロアを選択する必要があります。BLE 受信で選択
SDK の測位エンジンがロケーターの BLE 信号からフロアを検出すると、onFloorDetected にフロア ID が届きます。フロアを見失うと
null が届きます。
Dart
手動で選択
ユーザーにフロアを選ばせる場合や、測位前に地図を先に描画する場合は、建物とフロアを直接指定します。Dart
リアルタイム測位情報の受信
floorSession() で測位セッションを取得し、begin() で開始、end() で終了します。位置は
onPosition で受け取り、座標(メートル)が最大で毎秒 4 回届きます。
Dart
ゾーンイベント
コンソールの空間管理で描いたゾーンの進入・退出・滞在イベントを受け取ります。判定は端末内で行われるため、すぐに届きます。ゾーンに紐付いた施策(クーポン・サイネージなど)はサーバーがマッチングし、
onTriggers で届きます。イベントはすべて
Stream なので、複数の場所で同時に購読しても構いません。
Dart
ゾーン情報の更新
コンソールでゾーン情報が変わるとonConfigChanged が流れてきます。連続して届く場合は 1 秒ほどまとめて、refreshZones() を 1 回だけ呼びます。
Dart
図面の表示
ロケーターに紐付く図面と、ユーザーの現在位置を表示できます。図面を設定しない場合、背景はグリッドで表示されます。
Dart
その他のオプション
データ送信の制御
座標は 300 件たまるか、前回の送信から 60 秒経過すると自動で送信されます。ただし、アプリが強制終了されると座標は破棄されます。Dart
セッションのリセット
現在のセッションを破棄します。新しいセッションは作成しないため、続けて使うにはinitialize を再度呼び出してください(別のキーでも可能です)。
Dart
測位終了時の処理
測位エンジンが終了するとonStopped イベントが発生し、測位可能な状態へ戻せます。
Dart
対応端末の確認
deviceAvailability はネットワーク(インターネット)接続なしで即時に確認でき、測位に対応しない端末でもアプリの動作には影響しません。
Dart
付録
権限のリクエスト
requestPermission() は、SDK の利用に必要なすべての権限をまとめてリクエストします。ユーザーが一度でも拒否するとアプリから再リクエストできないため、設定アプリへ案内してください。
Dart
デバッグログ
デバッグログを確認するには、SDK の初期化(initialize)の直前に登録してください。ログは
flutter run を実行したターミナルや、IDE のデバッグコンソールに出力されます。端末から直接取得する方法は iOS・Android ガイドを参照してください。
ユーザーの測位情報はシミュレーター・エミュレーターでは確認できません。
Dart
setLanguage で指定します — 'ko'・'ja'・'en'、null なら端末の言語に従います。
Dart
ネイティブ SDK との違い
トラブルシューティング
エラーコード
開発中に発生するエラーの内容を案内します。