Megatracker 感測器外部控制
預設情況下,Megatracker 會自動管理加速度計和 GNSS 資料的監聽介面。但在某些複雜應用場景中,開發者可能需要手動控制這些介面的開啟和關閉,以實現更精細的功耗管理或權限控制。
開始之前
外部控制約束邏輯
在 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 執行期間呼叫微信原生的停止感測器介面,否則會導致資料中斷。
const megaTrackerSensorOptions: easyar.MegaTrackerSensorOptions = {
isAcceExternalControl: false,
isGeoExternalControl: true
};
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess,
options: megaTrackerSensorOptions
};
session = megaComponent.createSession(megaTrackerConfigs);
這個例子演示了如何外部控制開啟和關閉微信地理位置資料監聽,在呼叫 start(options)之前,需要呼叫 wx.startLocationUpdate 以開啟微信地理位置資料監聽。