如何通过Google Fit Fitness API计算睡眠时长
如何通过Google Fit计算个人睡眠时长?
核心步骤
- 筛选睡眠会话:Google Fit中,睡眠对应的
activityType为72,同时会话名称通常会标注为睡眠相关(示例中name为"Tidur",是印尼语的“睡眠”)。需从返回的会话列表中筛选出符合这两个特征的条目。 - 计算单段睡眠时长:每个睡眠会话的时长通过
endTimeMillis与startTimeMillis的差值计算,结果为毫秒单位。转换为常用单位的公式:- 分钟数 = (endTimeMillis - startTimeMillis) / 60000
- 小时数 = (endTimeMillis - startTimeMillis) / 3600000
- 去重合并会话:如果存在起止时间完全重叠的睡眠会话(如示例中的三个条目),需去重后计算,避免重复统计时长。
结合示例代码计算
你的JSON示例中,三个睡眠会话的起止时间完全一致:
startTimeMillis: 1713798000000endTimeMillis: 1713817920000
计算过程:
时长(毫秒)= 1713817920000 - 1713798000000 = 19920000 时长(分钟)= 19920000 / 60000 = 332分钟 → 5小时32分钟
示例JSON代码
{ "session": [ { "id": "healthkit-0B3E9A38-694F-4B88-B15B-9C534759131D", "name": "Tidur", "description": "", "startTimeMillis": "1713798000000", "endTimeMillis": "1713817920000", "modifiedTimeMillis": "1713826670476", "application": { "packageName": "com.xiaomi.miwatch.pro", "version": "", "detailsUrl": "" }, "activityType": 72 }, { "id": "healthkit-ABA36AB8-09E5-4AEC-9A6B-AA9DC5547567", "name": "Tidur", "description": "", "startTimeMillis": "1713798000000", "endTimeMillis": "1713817920000", "modifiedTimeMillis": "1713826670476", "application": { "packageName": "com.xiaomi.miwatch.pro", "version": "", "detailsUrl": "" }, "activityType": 72 }, { "id": "healthkit-E5E08251-357B-4620-B0AB-6EDC0321F8BB", "name": "Tidur", "description": "", "startTimeMillis": "1713798000000", "endTimeMillis": "1713817920000", "modifiedTimeMillis": "1713826670476", "application": { "packageName": "com.xiaomi.miwatch.pro", "version": "", "detailsUrl": "" }, "activityType": 72 } ], "deletedSession": [] }
内容的提问来源于stack exchange,提问作者Muhammad Rizal Ansori
相关产品推荐
相关产品推荐

