このドキュメントは v0.0.4 基準です。稼働中のバージョンは
OneS1ght.SDK_VERSION で確認できます。OneS1ght はアプリ全体で 1 つだけの object エントリーポイントです — インスタンスは作らず、すべての API を直接呼び出します。
非同期 API は同じ名前で 2 つの形式があります — Kotlin は suspend fun、Java は最後の引数に Callback<T> を受け取る形式です。
以下の表は Kotlin の形式で記載しています。
ライフサイクル
initialize のパラメーター:
既定の
baseUrl は https://console.ones1ght.com/api/sdk/v1 です。
測位セッション — FloorSession
コールバック
セッションのコールバックはFloorSession インスタンスに、デバッグログは OneS1ght に登録します。すべてのコールバックは
メインスレッドで呼び出されます。リスナーは fun interface のため、Kotlin では ZoneListener { zone -> … }、Java ではラムダで登録します。
ConfigChange — コンソールの変更
LogLevel — ログレベル
import co.onecheck.ones1ght.android.runtime.LogLevel でインポートします。宣言順に比較できるため、
level >= LogLevel.WARN のように絞り込めます。
空間の取得
エンドポイント 1 つにつきメソッド 1 つで、一覧と単体が対になっています。すべてsuspend です。
フロアの指定
プロフィール
貴社の会員 ID はサーバーに送られません — 対応関係は貴社のみが保持します。
データ送信
座標は 300 件または 60 秒のうち先に達した時点で送信されます。 バックグラウンドへの移行時とend() 時にも残りの座標を送信します。
状態の取得
Java からは getter で読みます —
OneS1ght.isInitialized()、OneS1ght.getDeviceAvailability()、OneS1ght.getGoogleMapKey()。
エラー — SdkError
SdkError は SDK 自体が投げる 5 種類です。通信の失敗は ApiError(co.onecheck.ones1ght.android.network)で届きます。
どちらも Exception のサブクラスで、.code.code でエラーコードの文字列を取り出せます。
- Kotlin
- Java
測位ランタイム(
E4001〜E4004)、空間設定(E3001〜E3009)、権限(E2003)は throw されず、ログにのみ出力されます —
onDebugLog またはコンソールのログ分析で確認してください。全一覧
モデル
モデルはco.onecheck.ones1ght.android.model パッケージにあります。
Coordinates — リアルタイム座標
Building · Floor — 建物・フロア
Locator · FloorLocators — ロケーター
Zone — ゾーン
コンソールゾーンは今後、地図の表示・zone_id へのマッピング・サーバーへの送信のためにのみ使われます
(設定方法)。測位エンジンが報告する領域名とコンソールゾーンの名前が一致している
必要があり、一致するものがない場合は
E3009(WARN)が 1 回出力され、その領域のイベントはサーバーへ
送られません。
判定パラメーターが残っているゾーンがあると、SDK が一度だけ WARN で知らせます — 値自体はもう判定に
使われないという意味です。
Trigger — パーソナライズアクション
MockPositioningProvider — テスト用
co.onecheck.ones1ght.android.positioning パッケージにあり、session.begin(provider) で注入すると UWB なしで SDK のパイプラインを
確認できます。ZoneEventStatus は ENTER · DWELL · EXIT です。
スレッド
- Kotlin の
suspendAPI はどのコルーチンから呼び出しても構いません。SDK が内部でスレッドを切り替えます。 identify・empty・pause・resumeはメインスレッドで呼び出します。- コールバック(
onPositionなど)と Java のCallbackの結果はメインスレッドで呼び出されます — そのまま UI を更新しても安全です。