MegaTracker センサー外部制御
デフォルトでは、MegaTracker は加速度計と GNSS データのリスニングインターフェイスを自動管理します。ただし、複雑なアプリケーションシーンでは、より細かな電力管理や権限制御のために、開発者がこれらのインターフェイスの開始と停止を手動で制御する必要がある場合があります。
始める前に
- MegaTracker の概念とワークフロー を理解してください
外部制御の制約ロジック
session 作成時に MegaTrackerConfigs を作成する際、MegaTrackerSensorOptions によりセンサーのリスニングインターフェイスを設定できます。
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
| isAcceExternalControl | boolean |
false |
加速度計を外部(開発者)が制御するかどうか。 |
| isGeoExternalControl | boolean |
false |
GNSS データを外部(開発者)が制御するかどうか。 |
ヒント
適用シーン: アプリケーションが Mega 機能以外でセンサーデータを直接購読しない場合は、デフォルト値 false のままにし、Mega に自動処理させることを推奨します。
上記パラメータを true に設定した場合、開発者は次の呼び出し順序を厳密に守る必要があります。
- 起動フロー
start(options) を呼び出す前に、対応するセンサーリスナーが手動で開始済みであることを必ず確認してください。
加速度計: wx.startAccelerometer を呼び出します。
GNSS: wx.startLocationUpdate を呼び出します。
停止フロー
stop() を呼び出した後にのみ、対応するセンサーリスナーを停止できます。
加速度計: wx.stopAccelerometer を呼び出します。
GNSS: wx.stopLocationUpdate を呼び出します。
注意
競合警告: false(Mega 管理)に設定した場合、Session 実行中に WeChat ネイティブのセンサー停止インターフェイスを呼び出してはいけません。データ中断につながります。
const megaTrackerSensorOptions: easyar.MegaTrackerSensorOptions = {
isAcceExternalControl: false,
isGeoExternalControl: true
};
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess,
options: megaTrackerSensorOptions
};
session = megaComponent.createSession(megaTrackerConfigs);
この例では、WeChat 位置情報データのリスニングの開始と停止を外部制御する方法を示します。start(options) を呼び出す前に、wx.startLocationUpdate を呼び出して WeChat 位置情報データのリスニングを開始する必要があります。