最近我尝试制作一个可以让用户步数的应用。并且遇到了Android 4.4中引入的步数和检测器。但我找不到按小时计算步数的方法。我是新手,任何指导都将受到高度赞赏
我找到了https://developer.android.com/reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener,android.hardware.Sensor,int)
编辑第三个参数我可以在执行以下操作时指定延迟 boolean registerListener(SensorEventListener listener,Sensor sensor,int samplingPeriodUs)
但它接受以毫秒为单位的值,并将一小时转换为毫秒,从而得到一个非常大的int值。任何人都可以指导如何处理它
答案 0 :(得分:1)
您在寻找的是Sensor Batching。
即使不保持设备唤醒,也可以获得连续的传感器数据。它基本上将传感器事件存储在芯片本身的基于hw的队列中,并且仅以预定间隔批量发送到您的应用程序(服务,...)。这使您可以在不显着耗尽电池的情况下进行全天候监控。请注意,只有受支持的芯片组可以做到这一点(您可以在Android文档中找到详细信息),如果是旧手机,您需要回退到可怕的唤醒锁定方法以获取数据。 Source
另外there是如何使用BatchStepSensor
的示例