MISE À JOUR:
j'ai pu résoudre le problème spécifique que je faisais en introduisant une classe -scope compteur statique et simplement ignorer x nombre d'événements. Mais j'aimerais quand même savoir ce que je fais de mal: enregistrer l'auditeur avec un indice en microsecondes au lieu d'utiliser l'une des quatre constantes données. Une activité dans mon application consiste à engager les capteurs pour obtenir l'orientation du périphérique, déterminer le rouleau et l'utiliser.taux d'événements du capteur « Custom » ne semblent pas travailler avec SensorManager.registerListener (écouteur SensorEventListener, capteur capteur, int rate)
J'utilise
SensorManager.registerListener(SensorEventListener listener, Sensor sensor, int rate)
pour enregistrer mes capteurs. Des Android Documentation for this method:
Paramètres
[...]
taux
Les événements du capteur de fréquence sont livrés à. Ceci est seulement un indice pour le système. Les événements peuvent être reçus plus rapidement ou plus lentement que le taux spécifié. Habituellement, les événements sont reçus plus rapidement. La valeur doit être l'une de SENSOR_DELAY_NORMAL, SENSOR_DELAY_UI, SENSOR_DELAY_GAME ou SENSOR_DELAY_FASTEST ou, le délai souhaité entre les événements en microseconde.
Si j'utilise l'une des 4 constantes prédéfinies, l'application fonctionne correctement; Cependant, ces constantes fournissent toutes des indices de taux qui sont trop rapides pour mes besoins. Je dois envoyer un paquet UDP contenant des informations avec chaque changement d'événement, et l'extrémité réceptrice semble être complètement inondée de messages en utilisant n'importe lequel des taux prédéfinis. L'utilisation d'un nombre entier de 30000 (puisque l'API spécifie des quantités en microsecondes) oblige l'application à arrêter de rapporter tous les événements de capteur.
Qu'est-ce qui me manque, qui m'empêche d'utiliser mes propres indices de taux d'événements?
oui, je veux faire ça aussi! La seule solution à laquelle je puisse penser est de filtrer les paquets manuellement. – David
C'est un objectif futile (basé sur l'expérience directe), car les pilotes de capteurs ne sont pas obligés d'obéir à votre indice. En fait, il pourrait envoyer des événements au même taux pour n'importe quelle/toutes les constantes prédéfinies! Votre meilleur pari est d'accumuler et de déclencher lorsque vous atteignez votre delta-temps désiré. –