浅谈一下HealthKit框架使用注意点

    日常我们都会接触到上传步数参加各种APP的活动,来赢取虚拟货币或者实物奖品。于是我对此发生了浓厚的兴趣,决定对APP获取步数的原理进行研究。

    简单说一下什么是HealthKit。就是苹果在IOS8系统以后用来生成、存储、查询各种健康数据的一个API,包括iPhone本身创建的健身数据,或者第三方app创建的健康数据,都可以通过这个API进行读取和查询。也可以把HealthKit看成iPhone的健康数据的一个统一的数据库,同一个手机上的不用app的健康数据的读取都是直接面向healthKit,由HealthKit统一管理,来实现iOS上不同应用之间的健康数据的交互。

    所以,我们尝试新建一个app(只做开发环境),请求对HealthKit数据的读写入权限,添加运动步数后,看看微信(或者其他第三方app)通过HealthKit读取我们手机上的健康数据中的运动步数,是否能够成功读取修改后的运动步数。

    具体实现代码我就不贴出来了,上网一搜一大把,我就谈谈几个关键点吧。

    1.要读取HealthKit的话,必须在Info.plist里面添加对应的权限请求,不然直接闪退。(如果需要上架的话,还需要详细描述对应用到的地方)。

    2.通过APP改动步数后,点击系统自带的健康软件,主页显示的是修改后的步数。然后点击tabBar的数据来源按钮,会看到对应步数来源于我们所建立的APP。

    3.然后点击微信(或者平安系列APP)发现并不会读取我们所添加的步数,只显示原本的步数。

    4.点击QQ,发现可以读取到修改后的步数,看来QQ的检测健康数据来源并没有微信的严格。

    发现了微信等APP的异样,我就再去搜寻相关资讯,发现了《HealthKit 获取健康步数,去除人为添加的数据》 (PS:这个也是转帖,确定来源并不清楚,如有侵权,请联系),看来微信等APP会对数据源做出判断,把人为添加的数据排除,得出正确的步数。

   总结:我们以后开发APP如果要调用到HealthKit的话,需要对获取数据的数据源做出判断,这样才能杜绝投机取巧,获得用户真实数据。但是,物理摇步器所生成的数据目前并不能有效排除,只能待后续系统更新,步数与路径相结合,获取用户真正运动的数据,这样才能鼓励更多的人去外出运动呢。

 

文中参考:https://www.jianshu.com/p/d564e603aead 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值