Внешнее управление сенсорами MegaTracker
По умолчанию MegaTracker автоматически управляет интерфейсами прослушивания данных акселерометра и GNSS. Однако в некоторых сложных сценариях приложения разработчикам может потребоваться вручную управлять включением и отключением этих интерфейсов для более точного управления энергопотреблением или разрешениями.
Перед началом
- Ознакомьтесь с концепциями и рабочим процессом MegaTracker
Логика ограничений внешнего управления
При создании MegaTrackerConfigs для session можно настроить интерфейсы прослушивания сенсоров через MegaTrackerSensorOptions.
| Имя параметра | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
| isAcceExternalControl | boolean |
false |
Указывает, управляется ли акселерометр внешне разработчиком. |
| isGeoExternalControl | boolean |
false |
Указывает, управляются ли данные GNSS внешне разработчиком. |
Совет
Применимый сценарий: если ваше приложение, кроме функций Mega, напрямую не подписывается на данные сенсоров, рекомендуется оставить значение по умолчанию false и позволить Mega обрабатывать их автоматически.
Когда указанные параметры установлены в true, разработчик должен строго соблюдать следующий порядок вызовов:
- Процесс запуска
Перед вызовом start(options) необходимо убедиться, что соответствующий listener сенсора включен вручную:
Акселерометр: вызовите wx.startAccelerometer.
GNSS: вызовите wx.startLocationUpdate.
Процесс остановки
Отключать соответствующий listener сенсора можно только после вызова stop():
Акселерометр: вызовите wx.stopAccelerometer.
GNSS: вызовите wx.stopLocationUpdate.
Осторожно
Предупреждение о конфликте: если установлено false (управляется Mega), не вызывайте нативные интерфейсы WeChat для остановки сенсоров во время работы Session, иначе возможен разрыв данных.
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.