Quelle est la meilleure pratique lors du sondage pour les valeurs des capteurs?
-
14-11-2019 - |
Question
Je travaille sur une application où j'ai besoin périodiquement d'obtenir une valeur de capteur. Pour cela, j'utilise AlarmManager et un récepteur à intervalles définis. La mise en œuvre du capteur d'Android semble se concentrer sur la lecture continue des données, et il ne semble pas possible de s'interrompre pour une seule lecture actuelle.
Ma question est la meilleure pratique pour "simuler" un mécanisme de sondage? Y a-t-il des exemples que je n'ai pas rencontrés? Une approche consiste à simplement appeler RegisterListener (), à obtenir la lecture actuelle, puis à appeler stopTListener (). Mais cela ne semble pas fonctionner car la lecture n'est pas disponible instantanément.
La solution
Vous pouvez utiliser la même approche que j'ai utilisée Dans ce projet pour les emplacements de sondage. Utiliser un WakeLock
Pour garder l'appareil éveillé et demander au service d'enregistrer l'écouteur du capteur dans onStartCommand()
. Lorsque l'événement du capteur arrive, libérez le WakeLock
et appeler stopSelf()
pour fermer le service.