這是計(jì)步模塊第二篇,第一篇詳細(xì)介紹了使用Android SDK自帶的計(jì)步傳感器和加速度傳感器進(jìn)行計(jì)步吹害。
第一篇介紹計(jì)步傳感器Sensor.TYPE_STEP_COUNTER可以在App關(guān)閉的時(shí)候繼續(xù)計(jì)步会通,但是在有些手機(jī)上不適用研究到這已經(jīng)有種想死感覺了和Android系統(tǒng)做斗爭真的太難了烟勋。
公司最新引進(jìn)一批測試機(jī)SamSung GALAXY C7席爽,在App關(guān)閉的情況下計(jì)步傳感器是不能計(jì)步的需要保持后臺Service狂打,但是現(xiàn)在的手機(jī)系統(tǒng)基本不要想保持后臺進(jìn)程被殺死就是時(shí)間問題书斜,但是三星自帶的S健康模塊是系統(tǒng)級的可以拿到步數(shù)诬辈、心率等等很多信息非常全面,最主要的他是系統(tǒng)級App有系統(tǒng)進(jìn)程且現(xiàn)在新款的三星手機(jī)都會有這個(gè)S健康模塊荐吉,換句話說他的步數(shù)是最準(zhǔn)確的而且新款手機(jī)都會有焙糟,如果能獲取他的數(shù)據(jù)那三星手機(jī)計(jì)步問題基本解決80%以上了。
項(xiàng)目地址:https://github.com/jiahongfei/TodayStepCounter
第一篇地址:http://www.reibang.com/p/ca1e1c3ac086
獲取S鍵康數(shù)據(jù)需要的前提條件如下兩部分:
第一部分
- Android手機(jī)系統(tǒng)版本最低需要4.4 KitKat (API level 19)
- 三星健康app版本最低4.0,才支持sdk開發(fā)样屠。
- 是否是Samsung health的合作伙伴app穿撮。(如果不是后面介紹測試環(huán)境)
第二部分
上面如果你還沒有申請 partner app 或者在三星批準(zhǔn)之前,三星健康app可以切換到Developer模式用來對你開發(fā)的app進(jìn)行測試痪欲。默認(rèn)情況下是未開啟的悦穿,需要你進(jìn)行開啟,操作如下:
- 找到三星自帶的S鍵康(三星健康)打開业踢。
- 右上角更多->設(shè)置
- 設(shè)置->關(guān)于三星健康
- 連續(xù)點(diǎn)擊10次版本號栗柒,例如“SM-G9300版本5.9.1.003”點(diǎn)擊10次
- 如果開啟成功,版本號顯示成** "(Developer Mode)"**開頭形式的版本號知举,如下圖開啟成功頁面
image.png
如上準(zhǔn)備工作都沒問題了我們接下來開始獲取S健康的步數(shù)數(shù)據(jù):
第一步下載SDK和Sample app或者我的開源項(xiàng)目.
網(wǎng)址http://developer.samsung.com/health
第二步AndroidStudio打開SimpleHealth運(yùn)行到手機(jī)上(不支持模擬器)瞬沦。如果沒有獲取到S健康的步數(shù)查看logcat會報(bào)如下錯(cuò)誤
這個(gè)錯(cuò)誤的意思大概是,當(dāng)前這個(gè)app沒有在白名單上注冊雇锡。也就是說app沒有和SamSung Health不是合作關(guān)系逛钻,需要apply for partner apps(申請合作)。出現(xiàn)這個(gè)問題就是上面準(zhǔn)備工作的第二部分沒有做好锰提,三星健康app不是開發(fā)模式曙痘,重新設(shè)置一下。
第三步后臺關(guān)閉SimpleHealth進(jìn)程立肘,再次打開會提示如下對話框
對讀取步數(shù)進(jìn)行授權(quán)之后就可以讀取S健康的步數(shù)了如下圖
我的開源項(xiàng)目需要在三星S健康中設(shè)置:
- 打開三星健康->右上角更多->點(diǎn)擊設(shè)置
- 找到數(shù)據(jù)權(quán)限進(jìn)入
- 找到你的App進(jìn)入可以設(shè)置獲取三星健康的權(quán)限
SimpleHealth代碼我在這里就不做分析了边坤,非常簡單。
我將SimpleHealth代碼整合到我的開源項(xiàng)目中谅年,可以下載然后按照以上的配置進(jìn)行配置就可以獲取步數(shù)了
項(xiàng)目地址:https://github.com/jiahongfei/TodayStepCounter
參考文獻(xiàn)
http://developer.samsung.com/health
http://developer.samsung.com/health/data/guide#hello-health-data