Android 计步模块(读取三星S健康步数)

这是计步模块第二篇,第一篇详细介绍了使用Android SDK自带的计步传感器加速度传感器进行计步。
第一篇介绍计步传感器Sensor.TYPE_STEP_COUNTER可以在App关闭的时候继续计步,但是在有些手机上不适用研究到这已经有种想死感觉了和Android系统做斗争真的太难了。
公司最新引进一批测试机SamSung GALAXY C7,在App关闭的情况下计步传感器是不能计步的需要保持后台Service,但是现在的手机系统基本不要想保持后台进程被杀死就是时间问题,但是三星自带的S健康模块是系统级的可以拿到步数、心率等等很多信息非常全面,最主要的他是系统级App有系统进程且现在新款的三星手机都会有这个S健康模块,换句话说他的步数是最准确的而且新款手机都会有,如果能获取他的数据那三星手机计步问题基本解决80%以上了。
项目地址:https://github.com/jiahongfei/TodayStepCounter
第一篇地址:http://www.jianshu.com/p/ca1e1c3ac086

获取S键康数据需要的前提条件如下两部分:

第一部分
  1. Android手机系统版本最低需要4.4 KitKat (API level 19)
  2. 三星健康app版本最低4.0,才支持sdk开发。
  3. 是否是Samsung health的合作伙伴app。(如果不是后面介绍测试环境)
第二部分

上面如果你还没有申请 partner app 或者在三星批准之前,三星健康app可以切换到Developer模式用来对你开发的app进行测试。默认情况下是未开启的,需要你进行开启,操作如下:

  1. 找到三星自带的S键康(三星健康)打开。
  2. 右上角更多->设置
  3. 设置->关于三星健康
  4. 连续点击10次版本号,例如“SM-G9300版本5.9.1.003”点击10次
  5. 如果开启成功,版本号显示成** "(Developer Mode)"**开头形式的版本号,如下图开启成功页面
    Android 计步模块(读取三星S健康步数)_第1张图片
    image.png

如上准备工作都没问题了我们接下来开始获取S健康的步数数据:

第一步下载SDK和Sample app或者我的开源项目.
网址http://developer.samsung.com/health

Android 计步模块(读取三星S健康步数)_第2张图片
F06DE28A-BFC5-4F63-9538-4C49DA7FAF50.png

第二步AndroidStudio打开SimpleHealth运行到手机上(不支持模拟器)。如果没有获取到S健康的步数查看logcat会报如下错误

image.png

这个错误的意思大概是,当前这个app没有在白名单上注册。也就是说app没有和SamSung Health不是合作关系,需要apply for partner apps(申请合作)。出现这个问题就是上面准备工作的 第二部分没有做好,三星健康app不是开发模式,重新设置一下。

第三步后台关闭SimpleHealth进程,再次打开会提示如下对话框

Android 计步模块(读取三星S健康步数)_第3张图片
image.png

对读取步数进行授权之后就可以读取S健康的步数了如下图
Android 计步模块(读取三星S健康步数)_第4张图片
image.png

我的 开源项目需要在三星S健康中设置:

  1. 打开三星健康->右上角更多->点击设置
  2. 找到数据权限进入
  3. 找到你的App进入可以设置获取三星健康的权限

SimpleHealth代码我在这里就不做分析了,非常简单。

我将SimpleHealth代码整合到我的开源项目中,可以下载然后按照以上的配置进行配置就可以获取步数了
项目地址:https://github.com/jiahongfei/TodayStepCounter

参考文献
http://developer.samsung.com/health
http://developer.samsung.com/health/data/guide#hello-health-data

你可能感兴趣的:(Android 计步模块(读取三星S健康步数))