2017-08-24 3 views
1

J'ai un écouteur d'événement de capteur implémenté dans un service qui fonctionne correctement tant que la période d'échantillonnage et la latence maximale du rapport sont inférieures à 1s, mais dès que j'augmente la période d'échantillonnage le capteur ne sera pas mis à jour du tout. Je veux que la période d'échantillonnage soit de 10s éventuellement 30s car l'application que je développe aura besoin des données vectorielles de rotation sur des périodes de temps prolongées (5-10h) et j'essaye de sauver autant de vie de batterie sur un smartwatch que possible.Service désactivé si le capteur est mis à jour (trop) lentement

Je heureusement fournir plus d'informations si je n'étais pas assez clair,

Merci à l'avance!

Répondre

0

J'ai donc trouvé le problème et apparemment, il s'agit des limites matérielles de l'appareil. Vous pouvez trouver le délai maximum en appelant le sensor.getMaxDelay. Si le retard est réglé sur une valeur plus élevée, le délai des capteurs sera réglé sur cette valeur. Cependant, sur les appareils plus anciens, cela peut ou non fonctionner. Il semble que si vous voulez un capteur plus lent que le délai maximum, vous devrez implémenter un type de runnable ou de thread.