<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:57811|
      • 收錄網站:279872|

      IT精英團

      開發者如何在應用后臺直接控制用戶的運動狀態?

      開發者如何在應用后臺直接控制用戶的運動狀態?

      瀏覽次數:
      評論次數:
      編輯: 溫瑜
      信息來源: ITPUB
      更新日期: 2022-09-10 08:52:41
      摘要

      酷暑終于過去,很多人伴著涼爽的秋風開啟了新一輪的健身計劃。當用戶進行戶外運動或使用跑步機、橢圓機等器械時,他們會希望在運動健康類App里點擊即可開啟運動并記錄運動數據。而對于開發者自己開發的應用來說,

      • 正文開始
      • 相關閱讀
      • 推薦作品

      終于,暑氣過去了,很多人隨著涼爽的秋風開始了新一輪的健身計劃。當用戶進行戶外運動或使用跑步機、橢圓機等設備時,他們會想要點擊運動健康App來開始運動并記錄運動數據。對于開發者自己開發的應用,用戶在使用與華為健康app綁定的運動裝備時,可以直接在自己的App后臺控制用戶的運動狀態并獲取實時數據,而不必從華為健康App進行操作。

      那么,對于運動健康App來說,如何實現上述功能呢?HMS核心運動健康服務的擴展能力服務,開放了更多實時運動健康數據和運動健康解決方案的場景數據。其中,控制運動和獲取實時運動數據的能力為運動的開始、暫停、恢復和結束提供了接口。開發者可以直接在應用中調用界面,在后臺的運動健康App中控制相應的運動狀態,無需跳轉到華為運動健康App的運動界面進行操作。此時運動健康app不會彈出運動頁面,而是在后臺執行。

      同時,華為還提供了采集實時運動數據和停止采集實時運動數據的接口。為防止數據丟失,采集實時運動數據的接口通常在開始運動前調用,停止采集實時運動數據的接口在停止運動后調用。如果用戶綁定了華為可穿戴設備,開始運動時,可穿戴設備會自動進入運動界面;運動結束時,可穿戴設備會自動結束運動。使用接口前,需要向華為申請開通權限,獲得用戶授權,否則接口調用失敗。目前支持的運動類型:戶外行走、戶外跑步、戶外騎行、室內跑步(跑步機)、橢圓機、劃船機、室內騎行。場景獲取的具體數據類型請參考實時運動束對象的關鍵值。

      前臺運動跳躍裝備匹配頁面

      Demo

      1. 申請Health Kit服務

      在申請保健箱服務前,請填寫帳戶服務申請。

      2 .集成 HMS Core SDK

      請先集成華為賬號服務SDK,再集成SDK。

      在開始開發之前,請將SDK集成到Android Studio開發環境中。Android Studio應該是V3.3.2及以上版本。

      開發步驟

      1 .開始獲取實時運動數據

      調用HiHealthDataStore對象的registerSportData方法開始獲取實時運動數據。

      通過請求參數HiSportDataCallback對象,返回查詢結果,結果中的數據類型引用實時運動捆綁對象的鍵值。

      示例代碼:

      hihealth datastore . registersportdata(context,new HiSportDataCallback() {

      @覆蓋

      public void on result(int result code){

      //接口調用結果

      Log.i(標簽,' registerSportData on result code : ' result code);

      }

      @覆蓋

      公共void onDataChanged(int state,Bundle bundle) {

      //實時數據更改回調

      Log.i(標簽,' registerSportData onChange state : '狀態);

      string buffer string buffer=new string buffer(');

      if (state==HiHealthKitConstant。運動_狀態

      _RUNNING) { Log.i(TAG, "heart rate : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_HEARTRATE)); Log.i(TAG, "distance : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_DISTANCE)); Log.i(TAG, "duration : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_DURATION)); Log.i(TAG, "calorie : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_CALORIE)); Log.i(TAG, "totalSteps : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_TOTAL_STEPS)); Log.i(TAG, "totalCreep : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_TOTAL_CREEP)); Log.i(TAG, "totalDescent : " + bundle.getInt(HiHealthKitConstant.BUNDLE_KEY_TOTAL_DESCENT)); } }});

      2. 停止獲取實時運動數據

      1. 調用HiHealthDataStore對象的unregisterSportData方法,停止獲取實時運動數據。

      2. 通過請求參數HiSportDataCallback對象,返回查詢結果。

      示例代碼:

      HiHealthDataStore.unregisterSportData(context, new HiSportDataCallback() {        JSONObject jsonResult    @Override        public void onResult(int resultCode) {        // 接口調用結果        Log.i(TAG, "unregisterSportData onResult resultCode:" + resultCode);       }    @Override        public void onDataChanged(int state, Bundle bundle) {        // 此時不會被調用         }});

      3. 根據運動類型開始運動

      1. 調用HiHealthDataStore對象的startSport方法,啟動相應類型的運動。

      2. 通過請求參數ResultCallback對象,返回查詢結果。

      示例代碼:

      // 室外跑步int sportType = HiHealthKitConstant.SPORT_TYPE_RUN;HiHealthDataStore.startSport(context, sportType, new ResultCallback() {    @Override    public void onResult(int resultCode, Object message) {        if (resultCode == HiHealthError.SUCCESS) {            Log.i(TAG, "start sport success");        }    }});
      1. 對于器械運動(例如跑步機運動、劃船機運動、橢圓機運動、動感單車運動),需要區分有無配對設備的場景,例如用戶想開啟劃船機運動:

      此時運動健康App已配對一臺劃船機,那么默認連接該配對設備,然后開啟后臺運動。

      此時運動健康App配對不止一臺劃船機,那么會彈框選擇設備,點擊開始運動后返回到應用頁面,然后開啟后臺運動。

      此時運動健康App沒有配對劃船機設備,那么會跳轉到運動健康App一鍵掃描頁面配對劃船機設備,如下圖所示,配對成功后會返回到應用頁面,然后開啟后臺運動。


      4. 根據設備信息開始運動

      1. 調用HiHealthDataStore對象的startSportEx方法,傳入相應啟動參數StartSportParam,可通過設置參數CharacteristicConstant.SportModeType控制前臺還是后臺啟動運動。

      2. 通過請求參數ResultCallback對象,返回開啟運動狀態的結果。

      示例代碼:

      // 劃船機為例// Mac地址,連接符為":",例:"11:22:33:44:55:66"String macAddress = "11:22:33:44:55:66" ;// 是否支持FTMP,0 不支持,1 支持int isSupportedFtmp = CharacteristicConstant.FtmpType.FTMP_SUPPORTED.getFtmpTypeValue();// 設備類型,劃船機int deviceType = CharacteristicConstant.DeviceType.TYPE_ROWER_INDEX.getDeviceTypeValue();// 運動類型,劃船機int sportType = CharacteristicConstant.EnhanceSportType.SPORT_TYPE_ROW_MACHINE.getEnhanceSportTypeValue();// 構造啟動參數,用于連接設備及控制運動StartSportParam param = new StartSportParam(macAddress, isSupportedFtmp, deviceType, sportType);// 啟動方式,0 前臺,1 后臺param.putInt(HiHealthDataKey.IS_BACKGROUND,    CharacteristicConstant.SportModeType.BACKGROUND_SPORT_MODE.getType());HiHealthDataStore.startSportEx(mContext, param, new ResultCallback() {    @Override    public void onResult(int resultCode, Object message) {                if (resultCode == HiHealthError.SUCCESS) {            Log.i(TAG, "start sportEx success");        }    }});

      5. 結束運動

      1. 調用HiHealthDataStore對象的stopSport方法,停止相應類型的運動(前臺開啟的運動無法通過stopSport方法停止)。

      2. 通過請求參數ResultCallback對象,返回查詢結果。

      示例代碼:

      HiHealthDataStore.stopSport(context, new ResultCallback() {    @Override    public void onResult(int resultCode, Object message) {        if (resultCode == HiHealthError.SUCCESS) {            Log.i(TAG, "stop sport success");        }    }});
      標簽:實時 華為 數據
      談ASP.NET核心認證與授權
      ? 上一篇 2022-09-10
      企業操作和維護實踐-丟棄docker構建
      下一篇 ? 2022-09-10
      • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
        0閱讀 0條評論 個贊
        在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
      • 國產核心板全志T507助力消防系統升級
        0閱讀 0條評論 個贊
        9月16日下午,位于湖南長沙市區內的中國電信大樓發生火災,建筑高度218米,現場濃煙滾滾,數十層樓體燃燒劇烈。消防救援人員趕到現場后很快將火勢控制住,目前大樓火勢已被撲滅,所幸未發現人員傷亡。湖南電信……
      • 教大家如何處理Spring Boot易流中的用戶和群體!
        0閱讀 0條評論 個贊
        1.準備工作2.用戶操作2.1添加用戶2.2修改用戶2.3刪除用戶2.4查詢用戶3.組操作3.1添加組3.2修改組3.3刪除組3.4查詢組4.查看表詳情雖然說我們在實際開發中,……
      • 從PG15開始WAL壓縮優化
        0閱讀 0條評論 個贊
        PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
      • 深入了解美團葉子發射器開源方案
        0閱讀 0條評論 個贊
        大家好,我是樹哥。之前我們有聊過「如何設計一個分布式ID發號器」,其中有講過4種解決方案,分別是:UUID類雪花算法數據庫自增主鍵Redis原子自增美團以第2、3種解決方案為基礎,開發出……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • Java精進-手寫持久層框架
        0閱讀 0條評論 個贊
        前言本文適合有一定java基礎的同學,通過自定義持久層框架,可以更加清楚常用的mybatis等開源框架的原理。JDBC操作回顧及問題分析學習java的同學一定避免不了接觸過jdbc,讓我們來回顧下初學……
      • 讓自己更有價值的5種能力
        0閱讀 0條評論 個贊
        如何讓自己更值錢?回答這個問題,需要用到黃金圈理論。什么是黃金圈理論?黃金圈理論,是國際知名營銷專家、作家SimonSinek在2011年提出的,這是一種由內向外的思維模式。黃金圈理論提倡由Why、……
      • 基于Flyway的數據庫版本控制實踐
        0閱讀 0條評論 個贊
        背景大家平時在開發過程中,會用Git來進行我們的代碼管理。如Git這些,使用這些版本控制系統能輕松的幫我們解決不同開發人員之間的代碼沖突處理版本回退實現軟件代碼的CI/CD等那大家考慮過么,針對數據庫……
      • 舉例說明庫伯內特公司的豆莢核心資源
        3閱讀 0條評論 個贊
        目錄一、Pod定義二、Pod入門yaml描述文件三、共享NetworkNamespace四、共享PID五、容器生命周期六、初始化容器6.1、簡介6.2、與普通容器的區別6.3、實驗七、Pod探針7.1……
      • 這三個特點讓G1取代CMS!
        0閱讀 0條評論 個贊
        大家好,我是樹哥。之前我們聊過CMS回收器,但那時候我們說CMS回收器已經落伍了,現在應該是用G1回收器的時候了。那么G1回收器到底有什么魔力,它比CMS回收器相比強在哪里呢?今天……
      • 構建docker鏡像庫(1):用注冊表構建本地鏡像庫
        0閱讀 0條評論 個贊
        目錄一.系統環境二.前言三.使用registry搭建私有鏡像倉庫3.1環境介紹3.2k8smaster節點配置鏡像倉庫3.3k8sworker1節點配置從私有倉庫上傳和拉取鏡像3.3.1上傳鏡……
      • SpringMVC 03: 請求和響應的亂碼解決 + SpringMVC響應Ajax請求
        1閱讀 0條評論 個贊
        請求或響應的中文亂碼問題tomcat9解決了get請求和響應的中文亂碼問題,但是沒有解決post請求或響應的中文亂碼問題tomcat10解決了get和post請求以及響應的中文亂碼問題考慮到實際項目中……
      • 【云原生】-碼頭工人容器遷移神諭到關系型數據庫
        0閱讀 0條評論 個贊
        文章目錄前言??1.創建專用網絡??2.Oracle12C部署?2.1鏡像下載?2.2容器創建?2.3創建業務用戶?2.4監聽啟動??3.MySQL8部署?3.1容器……
      • i.MX8MQ自制背板無PCIe問題詳解
        9閱讀 0條評論 個贊
        在飛凌嵌入式OKMX8MQ-C開發板上有兩個PCIe接口,對應著兩個PCIe差分時鐘,兩路PCIe分別用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。很多使用FETMX8MQ-C核心板的用……
      • 適時變革 共創未來| 2022數字技能職業教育生態研討會圓滿落幕
        0閱讀 0條評論 個贊
        2022年8月25日,由恒利聯創主辦的“適時而變,聯創未來”2022數字技能職業教育生態研討會在線上舉行。本屆大會圍繞“數字技能職業教育和數字化人才培養”的話題,邀請了Oracle技術人才發展部總經理……
      • c#異步高級————通道[1]
        0閱讀 0條評論 個贊
        前言該系列為異步編程的進階篇,其實也不能這么講。世界上本沒有進階篇,只能說是高級篇(高級篇不能說多高級,是對底層的封裝的意思),只要是加深理解都是進階。本章先介紹一下channel。正文下面沒什么好說……
      • 企業操作和維護實踐-丟棄docker構建
        15閱讀 0條評論 個贊
        本章目錄目錄0x00前言簡述快速介紹什么是Kaniko?為啥用Kaniko?Kaniko是如何工作的?Kaniko已知功能問題kaniko構建上下文kaniko緩存構建0x01部署使用環境……
      • SQL Server合并(刪除)分區的歧義消除
        4閱讀 0條評論 個贊
        一、準備在SQLServer2005版本之后就有了表分區的概念與應用,在分區操作里面有一個叫做合并分區的功能,也被稱為刪除分區。分區所處的文件組和文件是不會被刪除的,只會對數據進行轉移合并。合并分……
      • 深入了解春季交易:介紹 使用 原則
        8閱讀 0條評論 個贊
        大家好,我是樹哥。Spring事務是復雜一致性業務必備的知識點,掌握好Spring事務可以讓我們寫出更好地代碼。這篇文章我們將介紹Spring事務的誕生背景,從而讓我們可以更清晰地了解Sp……
      • 詳細解釋MySQL隔離級別
        0閱讀 0條評論 個贊
        一個事務具有ACID特性,也就是(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔離性、持久性),本文主要講解一下其中的Isolation,也……
      • SQL Server數據庫性能優化
        0閱讀 0條評論 個贊
        分析比較執行時間計劃讀取情況1.查看執行時間和cpusetstatisticstimeonselect*fromBus_DevHistoryDatasetstatisticstime……
      • Sql Server連接池及其用法
        0閱讀 0條評論 個贊
        其實我們一直在使用SqlServer的連接池。在連接字符串中,Pooling為是否啟用連接池,默認值為true,表示啟用。與連接池相關的兩個重要參數是MinPoolSize和MaxPoo……
      • 新一代網絡請求庫:python-httpx庫
        0閱讀 0條評論 個贊
        目錄httpx庫一、概述1、簡介2、命令行模式3、快速開始3.1get請求3.2post請求3.2.1表單3.2.2文件3.2.3JSON3.2.4二進制3.3響應處理3.4流……
      • Oracle服務器遷移的一些經驗
        3閱讀 0條評論 個贊
        前言通過此文章來分享一下Oracle服務器遷移過程中的一些經驗,希望對大家有些許幫助。本文旨在幫助更多的同學,會提及一些基本命令或技巧,但不贅述,后續有機會再進一步分享各個細節。背景之前因機房遷移……
      • SQL Server的常用分頁SQL
        0閱讀 0條評論 個贊
        今天無聊和朋友討論分頁,發現網上好多都是錯的。網上經常查到的那個TopNotin或者Max大部分都不實用,很多都忽略了Order和性能問題。為此上網查了查,順帶把2000和2012版本的也補上……
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>