Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 轮询传感器值时的最佳做法是什么?_Android_Sensors_Android Sensors - Fatal编程技术网

Android 轮询传感器值时的最佳做法是什么?

Android 轮询传感器值时的最佳做法是什么?,android,sensors,android-sensors,Android,Sensors,Android Sensors,我正在开发一个应用程序,定期需要获取传感器值。为此,我使用AlarmManager和一个固定间隔的接收器。Android的传感器实现似乎专注于数据的连续读取,并且似乎不可能对当前的单个读取进行轮询 我的问题是,模拟投票机制的最佳实践是什么?有没有我没见过的例子?一种方法是只调用registerListener,获取当前读数,然后调用stopListener。但是,这似乎不起作用,因为无法立即获得读数。您可以使用我用于轮询位置的相同方法。使用WakeLock使设备处于唤醒状态,并让服务在onSta

我正在开发一个应用程序,定期需要获取传感器值。为此,我使用AlarmManager和一个固定间隔的接收器。Android的传感器实现似乎专注于数据的连续读取,并且似乎不可能对当前的单个读取进行轮询


我的问题是,模拟投票机制的最佳实践是什么?有没有我没见过的例子?一种方法是只调用registerListener,获取当前读数,然后调用stopListener。但是,这似乎不起作用,因为无法立即获得读数。

您可以使用我用于轮询位置的相同方法。使用WakeLock使设备处于唤醒状态,并让服务在onStartCommand中注册传感器侦听器。当传感器事件到达时,释放WakeLock并调用stopSelf关闭服务。

我觉得Github示例对于此任务来说有点过火。我想我只需要知道如何监控活动何时到来。顺便说一句:这是一个需要定期更新的小部件,我正在尝试使用SensorEventListener从设备读取压力/气压计值,这与LocationManager完全不同。此外,它只需要在蜂巢中工作。可以使用BroadcastReceiver.Pendingreult吗?@hpe:我觉得Github示例对于这项任务来说有点过分。-欢迎你发表意见。能否使用BroadcastReceiver.Pendingreult不可靠,因为您可能无法足够快地获取传感器事件。请阅读goAsync的文档:不是针对个人的:但是,我尝试了一下,现在它工作了!非常感谢。@commonware:您的Github示例是否可以与加速计传感器一起使用?或者,在这种情况下,AlarmManager是否有用,可以看到加速计传感器不断运行并输出结果。我不希望onSensorChanged总是运行,而是在计时器的基础上运行,我认为AlarmManager可能会有所帮助,但不确定。对不起,我并不是想劫持hanspeide的帖子,但我的要求与他关于传感器轮询的要求类似。