MegaTracker 센서 외부 제어
기본적으로 MegaTracker는 accelerometer 및 GNSS 데이터의 listener interface를 자동으로 관리합니다. 그러나 일부 복잡한 애플리케이션 시나리오에서는 개발자가 더 세밀한 전력 관리나 권한 제어를 위해 이러한 interface의 시작과 중지를 수동으로 제어해야 할 수 있습니다.
시작하기 전에
- MegaTracker의 개념과 워크플로를 이해합니다
외부 제어 제약 로직
session 생성 시 MegaTrackerConfigs를 만들 때 MegaTrackerSensorOptions를 통해 센서 listener interface를 구성할 수 있습니다.
| 매개변수명 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| isAcceExternalControl | boolean |
false |
accelerometer를 외부(개발자)가 제어하는지 여부입니다. |
| isGeoExternalControl | boolean |
false |
GNSS 데이터를 외부(개발자)가 제어하는지 여부입니다. |
팁
적용 시나리오: 애플리케이션이 Mega 기능 외에 센서 데이터를 직접 구독하지 않는 경우 기본값 false를 유지하고 Mega가 자동 처리하도록 하는 것을 권장합니다.
위 매개변수가 true로 설정된 경우 개발자는 다음 호출 순서를 엄격히 준수해야 합니다.
- 시작 흐름
start(options)를 호출하기 전에 해당 센서 listener가 수동으로 활성화되어 있는지 확인해야 합니다.
Accelerometer: wx.startAccelerometer를 호출합니다.
GNSS: wx.startLocationUpdate를 호출합니다.
중지 흐름
stop()를 호출한 후에만 해당 센서 listener를 끌 수 있습니다.
Accelerometer: wx.stopAccelerometer를 호출합니다.
GNSS: wx.stopLocationUpdate를 호출합니다.
주의
충돌 경고: false(Mega 관리)로 설정한 경우 Session 실행 중 WeChat 네이티브 센서 중지 interface를 호출하면 안 됩니다. 그렇지 않으면 데이터가 중단될 수 있습니다.
const megaTrackerSensorOptions: easyar.MegaTrackerSensorOptions = {
isAcceExternalControl: false,
isGeoExternalControl: true
};
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess,
options: megaTrackerSensorOptions
};
session = megaComponent.createSession(megaTrackerConfigs);
이 예시는 WeChat 지리 위치 데이터 listener의 시작과 중지를 외부에서 제어하는 방법을 보여줍니다. start(options)를 호출하기 전에 wx.startLocationUpdate를 호출하여 WeChat 지리 위치 데이터 listener를 활성화해야 합니다.