美文网首页Android知识程序员Android开发
Android 计步模块(读取三星S健康步数)

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

作者: 码农一颗颗 | 来源:发表于2017-07-02 13:25 被阅读3085次

    这是计步模块第二篇,第一篇详细介绍了使用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)"**开头形式的版本号,如下图开启成功页面
      image.png

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

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

    F06DE28A-BFC5-4F63-9538-4C49DA7FAF50.png

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

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

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

    image.png
    对读取步数进行授权之后就可以读取S健康的步数了如下图
    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健康步数)

        本文链接:https://www.haomeiwen.com/subject/tajgcxtx.html