华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!

华为运动健康服务(HUAWEI Health Kit)6.9.0版本新鲜出炉啦!

一文了解新增功能,快来一起加入Health Kit生态大家庭!

一、更丰富:睡眠呼吸记录健康数据开放

呼吸机是用于为患者提供或增加肺通气的常用医疗器械,目前越来越多的家用呼吸机被用于缓解人们在日常睡眠过程中的打鼾、睡眠呼吸暂停等症状。

HUAWEI Health Kit新增支持在用户授权后,为生态应用开放用户在睡眠期间,使用呼吸机时产生的用户睡眠呼吸健康数据,助力守护用户的健康睡眠。生态应用可读取用户睡眠呼吸记录,如潮气量、低通气指数、阻塞性呼吸暂停指数等多项用户数据指标,分析用户睡眠呼吸暂停情况,更好地辅助用户睡眠。

二、更多样:路线数据/跑步课程写入

支持生态单个路线数据自动导入至华为运动健康App,并下发到穿戴设备(支持的设备:HUAWEI WATCH GT 3系列、HUAWEI WATCH GT RUNNER)。用户可以在设备上直接使用下发的路线导航,进行跑步、爬山等活动,无需掏出手机,使用手表即可轻松导航。

支持生态应用的跑步课程数据写入至华为运动健康App,并在已有的华为智能穿戴设备连接并支持课程导入时,直接将课表推送到设备上,用户可以轻松便捷地投入到跑步课程训练中。
提示:跑步课程数据写入处于beta阶段,欢迎开发者试用。

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

本文转载于网络 如有侵权请联系删除

相关文章

  • spring mvc之HandlerMethodArgumentResolver

    1.前言记得大三刚开始接触springmvc的时候,我们总是会写如下方法publicStringdoSomethine(HttpSerlvetRequestrequest){//doSomethine}复制然后现在看了这简直看不下去。因为:1.加重了我们对请求传过来来的值的取值代码,会使控制器中request.getParamater()之类的代码越来越多;2.不利于测试;3.request.getParamater()只能获取string,如果是Long等其他类型的参数还需要强转,使用起来非常不方便。所以springmvc从3.1开始便加强了这方便的功能,那就是HandlerMethodArgumentResolver,springmvc通过HandlerMethodArgumentResolver对传入的参数进行了一些列的装配绑定。2.原理2.1接口说明HandlerMethodArgumentResolver只有2个方法,supportParameter()决定了传入的参数是否启用该解析器,resolveArgument则是真正解析参数的过程,并且返回。源码2.1.1public

  • 【Golang】在Go语言的角度重新审视闭包

    闭包,最早最早接触到这个概念,是在学习JavaScript的回调函数,引出了闭包的概念,博主从Go语言的角度重新审视闭包,还是从JavaScript当初这个源头说起。1.JavaScript中的闭包functioncal(a,b,callback){ varres=(a+b)*100; returncallback(res) } cal(1,2,function(res){ console.log(res) }) 复制★一个函数和对其周围状态(lexicalenvironment,词法环境**)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在JavaScript中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。** ”这是MDN上关于闭包的定义,您理解了吗?2.C#中的闭包闭包离不开函数,C#没有返回函数类型的概念,直愣愣的返回函数肯定是不行,但是C#创造性了引入了委托delegate类型★委托类型是一个重要概念,向下指代的是函数或者说方法,向上延伸至事件。 ”说白了,委托就是一

  • 23天读懂23种设计模式:代理模式(结构型)

    结构型模式讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象实现新的功能(对象结构型模式)。代理模式的目的:为其他对象提供一种代理以控制对该对象的访问,即用一个类去代表另一个类的功能。winter代理模式也是结构型的设计模式之一,本文是设计模式系列(共24节)的第7篇文章。设计模式都从六大原则出发进行总结:《第一节:设计模式的六大原则》结构型设计模式共7种:代理模式(ProxyPattern):为其他对象提供一种代理以控制对该对象的访问。装饰模式(DecoratorPattern):动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更灵活。适配器模式(AdapterPattern):将一个类的接口变换成客户端所期待的接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。组合模式(CompositePattern):也叫合成模式,将对象组合成属性结构一表示“部分-整体”的层次结构,使得用户对单个对象和组成对象的使用具有一致性。桥梁模式(BridgePattern):也叫桥接模式,将抽象和实现解耦,是的两者可以独立

  • linux mysql定时备份脚本记录

    备份数据库是企业开发中必不可少的一步,今天演示一下如何在中使用定时备份数据。1.创建备份备份脚本:#!/bin/bash date_str=$(date +%Y%m%d-%T) cd /bf/mysql_back mysqldump -h localhost -u root --password=PASSWORD -R -E -e \databaseName \   | gzip > /bf/mysql_back/database_$date_str.sql.gz复制2.执行定时任务利用crontab定时执行上述脚本crontab -e复制每周一凌晨执行备份05 02 * * 1 /home/mysqls_backup/mysqlbackup.sh复制查看crontab列表crontab -l复制即时生效/etc/init.d/cron restart复制

  • POP!_OS提供出色的GNOME体验

    5月1日发布的POP!_OS20.04有可能成为任何新Linux用户的最佳起点之一。鉴于该发行版的日益流行,它将继续保持这种优势。这是一个大胆的声明,但是开发人员System76在将该Linux发行版推到最前沿方面已经采取了一些大胆的举措。该公司在其台式和便携式计算机生产线中预装了POP!_OS。尽管System76为公司自己的硬件创建了一个独特的,基于GNOME的品牌台式机环境,但是它无法发挥Apple的Mac锁定自己的操作系统的游戏。该发行版可通过两个版本的下载免费获得。一个ISO用于Intel和AMD系统,第二个ISO用于Nvidia图形系统。在Canonical于2017年决定停止开发Unity8桌面外壳并用GNOME3取代内部桌面之后,System76宣布Pop!_OS。但是,POP!_OS并非UbuntuGNOME的外观皮肤版本。它涉及更多。POP!_OS具有一种风格,即GNOME桌面的自定义版本。定制部分是为什么此发行版是Linux新手如此理想的起点的原因。经过调整的桌面环境不会尝试模仿Windows的外观。经验丰富的Linux用户也有很多理由也被POP!_OS与GNOM

  • 腾讯与云南共同发布“云南新文旅IP战略合作计划”

    5月21日下午,主题为“智慧旅游让生活更美好”的2019云南国际智慧旅游大会在昆明召开。云南省与腾讯共同发布“云南新文旅IP战略合作计划”,将利用“新文创”打造新型数字文旅模式、释放文旅新动能。这是国家层面推动文旅融合发展后,首个省级文旅融合实践;也是腾讯提出“新文创”战略以来,首个立足一个省份的落地实践。现场,文化和旅游部党组成员王晓峰、云南省人民政府省长阮成发、腾讯董事会主席兼首席执行官马化腾等领导与嘉宾先后致辞;云南省文旅厅厅长和丽贵与腾讯副总裁兼腾讯影业兼首席执行官程武,联合发布了这一战略合作计划。云南省文旅厅厅长和丽贵(左)与腾讯副总裁兼腾讯影业兼首席执行官程武(右),联合发布“云南新文旅IP战略合作计划”。2017年9月以来,腾讯公司与云南省人民政府合作打造了全域旅游数字化平台“一部手机游云南”,它充分利用了物联网、云计算、大数据、人工智能等技术深耕文旅产业。基于“一部手机游云南”项目的成功,云南和腾讯的战略合作关系持续深化,今年腾讯进一步参与到云南省级文旅IP的建设中。将逐步引入腾讯的文化IP资源,为云南打造全新的旅游形象。这次战略合作,立足于腾讯“新文创”战略指导与业务

  • 【JAVA进阶】HashMap容量的初始化

    《alibaba开发手册》推荐【推荐9】集合初始化,指定初始化值的大小;HashMap使用HashMap(intinitinalCapacity)初始化;分析:我们先来写一段代码在JDK1.7(jdk1.7.0_79)下面来分别测试下,在不指定初始化容量和指定初始化容量的情况下性能情况如何。(jdk8结果会有所不同)publicstaticvoidmain(String[]args){ intaHundredMillion=10000000; Map<Integer,Integer>map=newHashMap<>(); longs1=System.currentTimeMillis(); for(inti=0;i<aHundredMillion;i++){ map.put(i,i); } longs2=System.currentTimeMillis(); System.out.println("未初始化容量,耗时:"+(s2-s1)); Map<Integer,Integer>map1=newHashMap&l

  • 漫画:职场黑话大全(互联网公司百科版)

    导读:都在说普通话,但你听懂了吗?本文经授权转载自微信公众号“吓脑湿”(imyourgrandpa)

  • 各种基本算法实现小结(七)—— 常用算法

    各种基本算法实现小结(七)——常用算法(均已测试通过)======================================================================1、判断素数测试环境:VC6.0(C)#include<stdio.h> #include<math.h> intis_sushu(intn) { inti,mid; mid=(int)sqrt(n); for(i=2;i<=mid;i++) if(0==n%i) return0; return1; } voidmain() { intn; printf("Enteranum:"); scanf("%d",&n); if(is_sushu(n)) printf("%dissushu!/n",n); else printf("%disnotsushu.../n",n); }复制运行结果:============================

  • 自定义 SqlHelp

    1usingSystem; 2usingSystem.Collections.Generic; 3usingSystem.Data.SqlClient; 4usingSystem.Data; 5usingSystem.Configuration; 6usingSystem.Reflection; 7usingSystem.Collections; 8namespaceDataHelp 9{ 10#regionADO.NET访问数据库辅助类+SqlHelp 11//Author:兵兵+SqlHelp 12publicclassSqlHelp 13{ 14///<summary> 15///DB连接字符串 16///</summary> 17publicstaticreadonlystringDB=ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 18 19 20#regionExecuteDataReader+ExecuteDataReader(stringcmdTex

  • 关于zabbix存在SQL注入高危漏洞的安全公告

    近日,国家信息安全漏洞共享平台(CNVD)收录了zabbix存在的SQL注入漏洞(CNVD-2016-06408)。攻击者利用漏洞无需授权登录即可控制zabbix管理系统,或通过script等功能直接获取zabbix服务器的操作权限,进而有可能危害到用户单位整个网络系统的运行安全。由于zabbix服务器在境内应用较为广泛,有可能诱发较高的大规模攻击风险。一、漏洞情况分析zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。由于zabbix默认开启了guest权限,且默认密码为空,导致zabbix的jsrpc中profileIdx2参数存在insert方式的SQL注入漏洞。攻击者利用漏洞无需登录即可获取网站数据库管理员权限,或通过script等功能直接获取zabbix服务器的操作系权限。CNVD对该漏洞的综合评级为“高危”。二、漏洞影响范围漏洞影响较低版本zabbix系统,如已经确认的2.2.x,3.0.0-3.0.3版本。根据CNVD初步普查情况,约有3.5万台zabbix服务器暴露在互联网上,其中排名TOP5的国家和地区如下:中国(24.9%)、美

  • 线程池源码分析_executors源码解析

    大家好,又见面了,我是你们的朋友全栈君。概述在java中,线程池ThreadPoolExecutor是一个绕不过去的类,它是享元模式思想的体现,通过在容器中创建一定数量的线程加以重复利用,从而避免频繁创建线程带来的额外开销。一个设置合理的线程池可以提高任务响应的速度,并且避免线程数超过硬件能力带来的意外情况。在本文,将深入线程池源码,了解线程池的底层实现与运行机制。一、构造方法ThreadPoolExecutor类一共提供了四个构造方法,我们基于参数最完整构造方法了解一下线程池创建所需要的变量:publicThreadPoolExecutor(intcorePoolSize,//核心线程数 intmaximumPoolSize,//最大线程数 longkeepAliveTime,//非核心线程闲置存活时间 TimeUnitunit,//时间单位 BlockingQueue<Runnable>workQueue,//工作队列 ThreadFactorythreadFactory,//创建线程使用的线程工厂 RejectedExecutionHandlerhandler//拒绝

  • 腾讯云渠道合作伙伴合作伙伴返佣问题指引

    合作伙伴返佣政策腾讯云合作伙伴基础返佣政策(2022年7月),更多产品单独政策详细可在渠道管理>通知公告>渠道政策中查看。 合作伙伴返佣结算流程 对账单查询下载路径渠道管理>返佣信息 返佣付款进度查询以及结算单查询路径返佣付款进度查询可在渠道后台>返佣信息,左侧付款进度查询中查找结算单并可查看到付款进度。详细操作指引可以参考:《合作伙伴返佣核对及结算支付查询指引》。 说明: 腾讯云签收资料核实无误会在10-15个工作日付款。 结算单查询返佣结算开票:专票&普票之分,是否一定要开专票腾讯财务要求需要开具增值税专用发票(开票不限制税点)。若合作伙伴不方便开具,也可以开具增值税普通发票,如开普票,最后返佣结算会扣除6%的税点。 示例返佣结算100元,扣除税点6%,最后结算94元 说明: 如一定要开普票,最终收到的钱按6%扣除,还需答复财务结算邮件:同意接受扣除税金后的金额。 返佣结算开票信息及邮寄地址核对无误后请按结算金额开具增值税专用发票。 说明: 增值税专用发票须加盖发票专用章,结算单必须加盖公章或者财务专用章。 若确认

  • BZOJ2626: JZPFAR

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2626 题解:裸K-Dtree,最大值?自己yy一下估价函数就好了。      两题居然是同一个错误,真是toonaive。。。 代码: 1#include<cstdio> 2#include<cstdlib> 3#include<cmath> 4#include<cstring> 5#include<algorithm> 6#include<iostream> 7#include<vector> 8#include<map> 9#include<set> 10#include<queue> 11#include<string> 12#defineinf1ll<<62 13#definemaxn200000+5 14#definemaxm100000+5 15#defineeps1e-10

  • Python学习 Day1

    Python学习Day1 1.计算机初步认识 计算机硬件 CPU 内存 硬盘 主板 其他 计算机操作系统 Windows界面图形丰富 xp win7 win8 win10 winsever Linux centos,图形化界面差 ubuntu个人开发(图形化比较好) redhat,企业级收费 MacOS办公 计算机程序 QQ 游戏 浏览器等 计算机用户 学习编程语言 安装解释器/编译器/虚拟机 学习语法 2.解释器安装 下载解释器(官网下载) python2.7(2020年官方不在维护跟新) python3.7(推荐) 安装python3.7,python2.7 添加系统环境变量 cmd检查安装的解释器 第一个脚本(一个文件) 打开电脑终端CMD 输入命令:解释器路径脚本路径(加上.py后缀) print('HelloWorld!!') 复制 编码 初识编码 ascii,英文,8位表示一个东西,2**8 unicode,万国码,32位表示一个东西2**32 ut

  • CocosCreator-动态创建cc.Sprite

    Js代码 cc.loader.loadRes 首先需要使用这个函数,加载图片文件,这里需要注意,图片必须是相对于resources文件夹的 Js代码 //这里加载assets/resource/123.png文件 cc.loader.loadRes('123',cc.SpriteFrame,function(err,spriteFrame){ //创建一个新的节点,因为cc.Sprite是组件不能直接挂载到节点上,只能添加到为节点的一个组件 varnode=newcc.Node('myNode') //调用新建的node的addComponent函数,会返回一个sprite的对象 constsprite=node.addComponent(cc.Sprite) //给sprite的spriteFrame属性赋值 sprite.spriteFrame=spriteFrame //把新的节点追加到self.node节点去。self.node,就是脚本挂载的节点 self.node.addChild(node) }) 复制   不积跬步,无以至千里;不积小流

  • 各种预训练的词向量(Pretrained Word Embeddings)

    转自:SevenBlue EnglishCorpus word2vec Pre-trainedvectorstrainedonpartofGoogleNewsdataset(about100billionwords).Themodelcontains300-dimensionalvectorsfor3millionwordsandphrases.Thephraseswereobtainedusingasimpledata-drivenapproachdescribedinthispaper downloadlink|sourcelink fastText 1millionwordvectorstrainedonWikipedia2017,UMBCwebbasecorpusandstatmt.orgnewsdataset(16Btokens). downloadlink|sourcelink 1millionwordvectorstrainedwithsubwordinfomationonWikipedia2017,UMBCwebbasecorpusandstatmt.orgnewsda

  • Prometheus监控学习笔记之PromQL聚合查询

    0x01概要 本文主要涉及Prometheus聚合查询的MovingAverage,Max,Min,etc(AggregationOverTime)。   0x02转载  详细请参考原文,需要一定的英文阅读基础: PrometheusCheatSheet-MovingAverage,Max,Min,etc(AggregationOverTime) 聚合查询函数涉及以下: min_overtime() max_overtime() avg_overtime() sum_overtime() stddev_overtime() stdvar_overtime() quantile_over_time() last_over_time() count_over_time() 此处截图,仅供记录:  

  • C语言常见文件操作

    在C语言中主要通过标准的I/O函数来对文本文件进行操作。常见的文本操作函数包括 fopen()(打开)fclose()(关闭)fgetc()(读取字符)fputs()(写入字符)fprintf()(写入)fscanf()(读取) 1.打开文件 函数原型: FILE*fopen(constchar*path,constchar*mode);复制 其中: path:文件完整路径(如果没有指定路径,则默认为当前工作目录) mode:为指定的打开模式 如果打开成功,fopen会返回一个结构指针地址,否则返回一个NULL。 FILE*fp; fp=fopen("c:\\temp\\test.txt","r")复制 使用fopen()函数打开的文件会先将文件复制到缓冲区。注意:所下达的读取或写入动作,都是针对缓冲区进行存取而不是磁盘,只有当使用fclose()函数关闭文件时,缓冲区中的数据才会写入磁盘。 1.1打开模式: “r”:只能从文件中读数据,该文件必须先存在,否则打开失败 “w”:只能向文件写数据,若指定的文件不存在则创建它,如果存在则先删除它再重建一个新文件 “a”:向文件增加新数据

  • 假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小

    假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现? 实现1:用concurrent包下的CountDownLatch /** *假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现? *本例,用CountDownLatch实现,CountDownLatch相当于一个计时器 **/ publicclassTest1_1{ publicstaticvoidmain(String[]args)throwsInterruptedException{ finalCountDownLatchcountDownLatch=newCountDownLatch(4); Runnablerun1=newRunnable(){ @Override publicvoidrun(){ try{ Thread.sle

  • 底部固定,高度自动,跟随滚动条滚动

    现在的样式,看起来简单,但里面深奥的东西太多,套路太多,还是自己不够聪明呀!!!     <!DOCTYPEhtml> <html> <head> <title></title> <styletype="text/css"> html, body{ width:100%; height:100%; margin:0; padding:0; border:0; } .a1{ width:100%; min-height:100%; margin-bottom:-80px; background:#090; overflow:hidden; } .content{ padding-top:9999px; margin-top:-9999px; background:#900; padding-bottom:80px; } .a2{ width:100%; height:80px; background:#009; } </style> </head> <body>

相关推荐

推荐阅读