众所周知,许多安卓手机在屏幕关闭时会关闭加速度计。然而,Android Fit(应用程序)似乎发生了一些变化。即使屏幕关闭,Fit仍然会继续计步。如果安装了Fit,则在Fit环境中会引发计步事件,并且我可以使用下面的代码捕获它们:
Fitness.SensorsApi.findDataSources(mClient, new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_STEP_COUNT_CUMULATIVE)
我在三星S4和Oneplus One上测试过,两种情况都可以计步。
他们是如何实现的?他们使用了哪些Android类?
据我所知,自Kitkat以来可用的方法是实现SensorEventListener。例如,theelfismike提供了 实现此功能 的代码。但是,在许多手机上,当屏幕关闭时,步数统计会停止。有趣的是,如果安装了Google Fit应用程序,计数似乎不会停止(因此我猜测他们保持了加速度计的运转)。
我错过了什么吗?在屏幕关闭后继续计步的功能是否对普通程序员可用?
谢谢!
activityRunning
条件,这样可以使您的计步器在屏幕关闭后继续工作。此外,最好将计步逻辑移到服务中。无论您是否持有唤醒锁定,活动都可能随时被终止。 - simekadam