微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 获取用户在后台发送到服务器的每日步数的最佳方法

我想每24小时向我的服务器发送一下我走了几步.我有一个AlarmManager来关闭alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000 * 60 * 60 * 24,pendingIntent1)

在这就是我被困的地方……我应该如何衡量每日步骤?(记住我需要在后台发送这个)我可以使用这个可以覆盖此函数的服务public void onSensorChanged(SensorEvent event)this doesn’因为我的服务可能被破坏(电池会很快耗尽),所以看起来很准确.

要么

我可以尝试使用Google健身,但我每次尝试获取数据时都需要用户连接mGoogleapiclient.connect()(我需要在后台获取此数据)

有人有这方面的经验吗?

解决方法

onSensorChanged()确实可以正常工作.传感器应该在设备中足够好,它不应该将振动计为一个步骤.但是,使用onSencorChanged()捕获步数时唯一的问题是,如果我们摇动设备,它会将其视为一个步骤.为避免这种情况,大多数解决方案将实现跟踪位置并发送到后端,以便后端计算设备是否实际移动.它将实际步数发送回可以显示的设备.

除此之外,如果您认为服务被破坏是您的问题,您可以保证重新启动它.请参阅我对Unable to restart the service的回答.这解释了当应用程序被最近的任务或低内存情况下的系统杀死时如何使用UncaughtExceptionHandler重新启动服务.您的服务无法在深度睡眠模式下运行.您可以使用WakefulBroadcastReceiver and startWakefulService()运行它.

您应该尽可能减少向后端发送数据的频率,以避免耗尽电池电量.

我不确定GoogleFit API.为自己研究这个问题,你可以为你的问题添加答案.

原文地址:https://www.jb51.cc/android/315249.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐