Controle externo de sensores do MegaTracker
Por padrão, o MegaTracker gerencia automaticamente as interfaces de escuta de dados do acelerômetro e GNSS. Porém, em alguns cenários de aplicação complexos, desenvolvedores podem precisar controlar manualmente a ativação e desativação dessas interfaces para gerenciamento de energia ou controle de permissões mais refinados.
Antes de começar
- Conheça os conceitos e workflow do MegaTracker
Lógica de restrição do controle externo
Ao criar MegaTrackerConfigs para uma session, você pode configurar as interfaces de escuta dos sensores por meio de MegaTrackerSensorOptions.
| Nome do parâmetro | Tipo | Valor padrão | Descrição |
|---|---|---|---|
| isAcceExternalControl | boolean |
false |
Indica se o acelerômetro é controlado externamente pelo desenvolvedor. |
| isGeoExternalControl | boolean |
false |
Indica se os dados GNSS são controlados externamente pelo desenvolvedor. |
Dica
Cenário aplicável: se sua aplicação, além dos recursos Mega, não assina diretamente dados de sensores, recomenda-se manter o valor padrão false e deixar o Mega tratar automaticamente.
Quando os parâmetros acima são definidos como true, os desenvolvedores devem seguir rigorosamente a ordem de chamadas abaixo:
- Fluxo de inicialização
Antes de chamar start(options), certifique-se de que a escuta do sensor correspondente foi ativada manualmente:
Acelerômetro: chame wx.startAccelerometer.
GNSS: chame wx.startLocationUpdate.
Fluxo de parada
Somente depois de chamar stop() você pode desativar a escuta do sensor correspondente:
Acelerômetro: chame wx.stopAccelerometer.
GNSS: chame wx.stopLocationUpdate.
Cuidado
Aviso de conflito: se definido como false (gerenciado pelo Mega), não chame interfaces nativas do WeChat para parar sensores enquanto a Session estiver em execução, caso contrário poderá ocorrer interrupção de dados.
const megaTrackerSensorOptions: easyar.MegaTrackerSensorOptions = {
isAcceExternalControl: false,
isGeoExternalControl: true
};
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess,
options: megaTrackerSensorOptions
};
session = megaComponent.createSession(megaTrackerConfigs);
Este exemplo demonstra como controlar externamente a ativação e desativação da escuta de dados de geolocalização do WeChat. Antes de chamar start(options), chame wx.startLocationUpdate para ativar essa escuta.