You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android开发:如何获取三星健康中记录的实际时间而非插入时间?

解决Samsung Health获取手动录入记录实际时间的问题

嗨,我正好清楚这个问题的解法!你碰到的情况很典型——HealthConstants.Weight.CREATE_TIMEUPDATE_TIME本质是系统层面的时间(分别对应数据插入Samsung Health数据库的时间、最后一次更新数据库记录的时间),并不是你手动设置的记录实际发生时间。

要获取你修改的那个真实记录日期,你需要用到HealthConstants.Weight.START_TIME这个常量。

为什么是START_TIME?

在Samsung Health的数据模型里,START_TIME字段就是专门用来存储记录的实际发生时间的:

  • 当你手动录入体重数据并修改日期时间时,这个值会被同步设为你指定的时间(比如你例子里的FRI, 19 JAN 2018, 16:33
  • CREATE_TIME是这条数据被写入数据库的系统时间(你的例子里是MON, 22 January 2018 10:41:39
  • UPDATE_TIME则是这条数据最后一次被修改(包括系统同步、再次编辑等操作)的数据库时间

代码示例参考

你可以在查询体重数据时,把START_TIME加入请求的属性列表:

// 构建体重数据查询请求
HealthDataRequest weightRequest = new HealthDataRequest.Builder()
    .setDataType(HealthConstants.Weight.HEALTH_DATA_TYPE)
    .setProperties(new String[]{
        HealthConstants.Weight.START_TIME,
        HealthConstants.Weight.WEIGHT,
        HealthConstants.Weight.CREATE_TIME // 可以用来对比验证
    })
    .build();

这样获取到的START_TIME对应的就是你手动设置的记录实际时间啦!

内容的提问来源于stack exchange,提问作者e.k

火山引擎 最新活动