鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发
注意
该接口的调用需要在开发者联盟申请设备基础信息权限与穿戴用户状态权限,穿戴用户状态权限还需获得用户授权。
- 实时查询穿戴设备可用空间、电量状态。
- 订阅穿戴设备连接状态、低电量告警、用户心率告警。
- 查询和订阅穿戴设备充电状态、佩戴状态、设备模式。
使用该接口前,需要确保应用已申请相应权限同时向手机侧用户申请获取对应权限的授权,否则接口将调用失败。
穿戴设备状态与运动健康状态 | 申请权限 | 查询结果 | 订阅事件的触发条件 | 订阅结果 |
---|---|---|---|---|
连接状态 | 设备基础信息 | N/A | - 2:手机连接设备成功 |
- 3:手机与设备断开(断开蓝牙或拉远距离) | - 2:连接成功
- 3:连接断开
- 4:连接失败
- 5:设备被删除 |
| 可用空间 | 可用存储空间,单位:KB(例如:20480) | N/A | N/A | |
| 电量状态 | 电量值(例如:97) | 设备电量减少1% (例如:由98%降到97%),且设备处于非充电状态 | 电量值(例如:97) | |
| 充电状态 | - 1:设备正在充电状态 - 2:设备为非充电状态
- 3:设备正在充电,且为满电状态 | - 1:给设备进行充电
- 2:设备停止充电
- 3:设备达到充满电的状态 | - 1:充电开始
- 2:充电结束
- 3:充电完成 | |
| 设备模式 | - -1:设备不支持模式切换 - 0:设备处于智能模式
- 1:设备处于超长续航模式 | - 0:设备从超长续航模式切到换智能模式
- 1:设备从智能模式切换到超长续航模式 | - 0:设备处于智能模式
- 1:设备处于超长续航模式 | |
| 佩戴状态 | 穿戴用户状态[USER_STATUS](仅限企业开发者) | - 1:佩戴中 - 2:未佩戴 | - 1:将穿戴设备戴在手腕上
- 2:将穿戴设备由手腕摘下 | - 1:佩戴
- 2:未佩戴 |
| 心率告警 | N/A | - 1:静态心率连续10分钟高于上限值 - 2:静态心率连续10分钟低于下限值
- 3:运动心率过高
- 4:运动心率过低备注:打开“运动健康App > 设备”,在应用和服务列表中,点击“心率”,设置相应的心率提醒。 | - 1:静态心率过高
- 2:静态心率过低
- 3:运动心率过高
- 4:运动心率过低 | |
说明
- 穿戴设备侧无对应的应用,手机侧应用也可以使用该能力获取穿戴设备状态。
- 在查询或订阅穿戴设备电量、充电、佩戴、心率告警状态时,请确保穿戴设备和华为运动健康App处于连接状态。用户可进入App“设备”界面查看设备是否在线。开发者可调用[getConnectedDevices]或根据返回错误码了解设备是否已连接手机,如果设备未连接则提醒用户重新连接设备。
- 查询和订阅佩戴状态、心率告警时,需要申请穿戴用户状态[USER_STATUS]权限。
查询设备状态
穿戴设备的状态可以调用[MonitorClient]对象中的[queryStatus]方法获取到。一次只能查询一个状态。
-
参见[已连接穿戴设备查询]章节,获取已连接设备列表。
-
参见[目标设备选择]章节,从已连接设备列表中选定需要通信的设备。
-
调用[wearEngine]中的[getMonitorClient]方法,获取[MonitorClient]对象。
-
调用[queryStatus]方法,查询指定指标状态。
-
通过[MonitorItem]对象,查询指定指标状态。目前支持查询的状态如下:
- “电量状态”字段:POWER_STATUS。
- “充电状态”字段:CHARGE_STATUS。
- “佩戴状态”字段:WEAR_STATUS。
- “设备模式”字段:POWER_MODE。
- “可用内存”字段:AVAILABLE_STORAGE_SPACE
-
通过[MonitorData]对象,返回指定指标状态的查询结果。
-
// 步骤3 获取MonitorClient对象
let monitorClient: wearEngine.MonitorClient = wearEngine.getMonitorClient(getContext(this));// 步骤4 查询指定指标状态(以佩戴状态为例)
monitorClient.queryStatus(targetDevice.randomId, wearEngine.MonitorItem.WEAR_STATUS).then((result: wearEngine.MonitorData) => {// 获取到所查状态的状态值,处理对应业务逻辑console.info(`Succeeded in querying wear status, result is ${result.code}.`);
}).catch((error: BusinessError) => {// 处理调用失败时捕获到的异常console.error(`Failed to query wear status. Code is ${error.code}, message is ${error.message}.`);
})
订阅设备状态
-
参见[已连接穿戴设备查询]章节,获取已连接的设备列表。
-
参见[目标设备选择]章节,从已连接设备列表中选定需要通信的设备。
-
调用[wearEngine]中的[getMonitorClient]方法,获取[MonitorClient]对象。
-
定义订阅任务的回调对象[callback]。
-
调用[subscribeEvent]方法,订阅指定指标状态变化的订阅。
-
通过[MonitorEvent]对象,订阅穿戴设备与运动健康状态。目前支持的订阅状态如下:
- “设备连接状态”字段: [EVENT_CONNECTION_STATUS_CHANGED]。
- “电量降低状态”字段:[EVENT_BATTERY_LEVEL_DROPPED]。
- “充电状态”字段: [EVENT_CHARGE_STATUS_CHANGED]。
- “佩戴状态”字段:[EVENT_WEAR_STATUS_CHANGED]。
- “心率告警”字段:[EVENT_HEART_RATE_ALARM]。
- “设备模式”字段:[EVENT_POWER_MODE_CHANGED]。
-
通过[Callback] <[MonitorEventData] >对象,返回设备状态的订阅结果。
-
// 步骤3 获取MonitorClient对象
let monitorClient: wearEngine.MonitorClient = wearEngine.getMonitorClient(getContext(this));// 步骤4 定义回调函数
let callback = (monitorEventData: wearEngine.MonitorEventData) => {// 处理监听到状态变化后的业务逻辑console.info(`Succeeded in listening change of ${monitorEventData.event}, the new status is ${monitorEventData.data}.`)
}// 步骤5 调用订阅方法
monitorClient.subscribeEvent(targetDevice.randomId, wearEngine.MonitorEvent.EVENT_WEAR_STATUS_CHANGED, callback).then(() => {console.info(`Succeeded in subscribing wear status.`);
}).catch((error: BusinessError) => {console.error(`Failed to subscribe wear status. Code is ${error.code}, message is ${error.message}.`);
})
- 调用[unsubscribeEvent] 方法,解除穿戴设备状态变化的订阅。(需要传入订阅时使用的回调函数对象)
// 步骤6 取消订阅,取消订阅时需要传入与订阅时相同的回调函数对象才可正常取消订阅
monitorClient.unsubscribeEvent(targetDevice.randomId, wearEngine.MonitorEvent.EVENT_WEAR_STATUS_CHANGED, callback).then(() => {console.info(`Succeeded in unsubscribing wear status`);
}).catch((error: BusinessError) => {console.error(`Failed to unsubscribe wear status. Code is ${error.code}, message is ${error.message}.`);
})
最后呢
很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。
而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。
针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。
- 《鸿蒙 (OpenHarmony)开发学习视频》
- 《鸿蒙生态应用开发V2.0白皮书》
- 《鸿蒙 (OpenHarmony)开发基础到实战手册》
- OpenHarmony北向、南向开发环境搭建
- 《鸿蒙开发基础》
- 《鸿蒙开发进阶》
- 《鸿蒙开发实战》
总结
鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。
并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
相关文章:
鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发
注意 该接口的调用需要在开发者联盟申请设备基础信息权限与穿戴用户状态权限,穿戴用户状态权限还需获得用户授权。 实时查询穿戴设备可用空间、电量状态。订阅穿戴设备连接状态、低电量告警、用户心率告警。查询和订阅穿戴设备充电状态、佩戴状态、设备模式。 使…...
vite中sass警告JS API过期
1.问题 在Vite创建项目中引入Sass弹出The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0 - vite中sass警告JS API过期 The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0警告提示表明你当前正在使用的 Dart Sass 版本中&#…...
睢宁自闭症寄宿学校:培养特殊孩子的未来
在自闭症儿童的教育与康复领域,每一所学校的努力都是对孩子们未来无限可能的一次深刻诠释。从江苏睢宁到广东广州,自闭症寄宿学校正以不同的方式,为这些特殊的孩子铺设一条通往未来的希望之路。其中,广州的星贝育园自闭症儿童寄宿…...
【Canvas与徽章】金圈蓝底国庆75周年徽章
【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>金边黑盾75周年</title><style type"text/css"&g…...
Java Servlet 详解
Java Servlet 是 Java 企业级应用 中的一个核心组件,特别是在 Web 应用开发中,它为服务器端处理请求提供了基础。每次用户发出请求时,Servlet 都会动态生成响应,这在构建复杂、交互式的 Web 应用时尤为重要。 什么是 Servlet&am…...
yolov8/9/10模型在安全帽、安全衣检测中的应用【代码+数据集+python环境+GUI系统】
yolov8910模型安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 yolov8/9/10模型在安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 背景意义 安全帽和安全衣在工业生产、建筑施工等高风险作业环境中是保护工人免受意外伤害的重要装备。然而࿰…...
算力共享系统中数据平面和控制平面
目录 算力共享系统中数据平面和控制平面 数据平面 控制平面 算力共享系统举例 控制流程和业务流程,在算力共享系统中举例说明 控制流程 业务流程 算力共享系统中数据平面和控制平面 在算力共享系统中,数据平面和控制平面是两个关键组成部分,它们各自承担着不同的角色…...
C++语言学习(4): identifier 的概念
1. 什么是 identifier identifier 中文意思是标识符,在 cppreference 中明确提到,identifier 是任意长度的数字、下划线、大写字母、小写字母、unicode 字符 的序列: An identifier is an arbitrarily long sequence of digits, underscores…...
浅谈计算机神经网络基础与应用
1. 绪论 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。作为AI技术的核心组成部分,神经网络在推动这一领域的发展上扮演着至关重要的角色。本报告旨在探讨AI中的不同类型神经网络及其在实际应用中的表现和影响。我们将从神经网络的基本概念入手,逐步…...
【SpringBoot详细教程】-08-MybatisPlus详细教程以及SpringBoot整合Mybatis-plus【持续更新】
目录 🌲 MyBatis Plus 简介 🌾入门案例 🌾 MP 简介 🌲 MP 的CRUD 🌾 新增 🌾 删除 🌾 修改在进行 🌾 根据ID查询 🌾 查询所有 🌲 分页功能 🌾 设置分页参数 🌾 设置分页拦截器 🌲 优化启动 🌾 取消mbatisPlusBanner 🌾 取消Sprin…...
[20241002] OpenAI融资文件曝光,ChatGPT年收入涨4倍,月费5年内翻倍
智东西9月29日消息,据《纽约时报》9月27日报道,OpenAI的内部文件显示,该公司在8月份的月收入达到3亿美元,自2023年初以来增长了1700%,预计今年年度销售额将达到37亿美元,其中ChatGPT将带来27亿美元的收入。…...
工业缺陷检测——Windows 10本地部署AnomalyGPT工业缺陷检测大模型
0. 引言 在缺陷检测中,由于真实世界样本中的缺陷数据极为稀少,有时在几千甚至几万个样品中才会出现一个缺陷数据。因此,以往的模型只需在正常样本上进行训练,学习正常样品的数据分布。在测试时,需要手动指定阈值来区分…...
单元测试进阶-Mock使用和插桩
目录 一、基本概念 1、Mock 2、插桩(Sutbbing) 二、参考文章 一、基本概念 1、Mock Mock的作用就是不直接new对象,而是使用Mock方法或者注解Mock一个对象。 这个对象他不是new创建的对象,Mock对该对象的一些成员变量和方法…...
适用conda安装虚拟的python3环境
由于jupyter notebook 7以上的版本与jupyter_contrib_nbextensions存在冲突,导致以前使用顺手的插件无法使用了,就考虑建立一个虚拟环境,在里面使用jupyter notebook 6,以便和jupyter_contrib_nbextensions兼容。 conda简介和优势 Conda 是一个包管理器和环境管理器,它不…...
【C++】“list”的介绍和常用接口的模拟实现
【C】“list”的介绍和常用接口的模拟实现 一. list的介绍1. list常见的重要接口2. list的迭代器失效 二. list常用接口的模拟实现(含注释)三. list与vector的对比 一. list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器…...
第九篇——数列和级数(二):传销骗局的数学原理
目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 文章不长,但是道理深刻;相邻两个数的差值…...
docker如何查看容器的ip
要查看Docker容器的IP地址,可以使用以下几种方法: 使用docker inspect命令: docker inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} <容器ID或名称> 使用docker ps和docker inspect组合: 首先查看正…...
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
文章目录 一、问题报错二、ONLY_FULL_GROUP_BY模式2.1、什么是ONLY_FULL_GROUP_BY?2.2、为什么要使用ONLY_FULL_GROUP_BY?2.3、查看sql_mode 三、解决方法3.1、关闭only_full_group_by模式3.1.1、方法一:关闭当前会话中的only_full_group_by3…...
设计模式(2)工厂模式
让一个工厂类去生产出对象 (new )来。 我们想要一个 形状,我们用工厂去生产出,圆形,方形。 package com.example.factory2;public interface Shape {void draw(); }public class Square implements Shape {Overridep…...
二分查找算法专题(1)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: 优选算法专题 目录 二分查找算法的介绍 704. 二分查找 34. 在排序数组中查找元素的第一个和 最后一个位置 35. 搜索插入位置 69. x的平…...
ACP科普:SoS不是救命
Scrum of Scrums(SoS)是一种用于协调多个Scrum团队之间工作的扩展框架,特别适用于大型项目或组织中有多个团队同时进行开发的情况。它帮助团队在保持敏捷性的同时,解决跨团队的依赖和协调问题。以下是对Scrum of Scrums的详细介绍…...
C++:模拟实现vector
目录 成员变量与迭代器 size capacity empty 迭代器有关函数 实现默认成员函数的前置准备 reserve 编辑 编辑 push_back 构造函数 无参构造 迭代器区间构造 n个val来进行构造 析构函数 拷贝构造函数 赋值重载 增删查改 clear resize pop_back inser…...
Leecode SQL 184. Department Highest Salary 找出tie
Department Highest Salary 注意!要找出 tie 的 highest salary! Write a solution to find employees who have the highest salary in each of the departments. Return the result table in any order. The result format is in the following ex…...
[Redis][典型运用][缓存]详细讲解
目录 0.什么是缓存?1.使用Redis作为缓存1.为什么用?2.如何用? 2.缓存的更新策略0.前言1.定期生成2.实时生成 3.缓存相关问题1.缓存预热(Cache Preheating)2.缓存穿透(Cache Penetration)3.缓存雪崩(Cache Avalanche)4.缓存击穿(Cache Breakdo…...
GPG error golang 1.19
1. 问题描述及原因分析 在飞腾2000的服务器,OS为Kylin Linux Advanced Server release V10环境下,docker版本为18.09.0(docker-engine-18.09.0-101.ky10.aarch64),基于容器镜像golang:1.19编译新的容器镜像࿰…...
Linux如何查看每个文件及文件夹的大小
查看当前目录下每个文件夹的大小,包括其内部所有文件: du -sh *-s:仅显示每个文件夹的总大小,而不是每个文件。-h:以人类可读的格式显示。...
Word样式的同步与重置
有时候我们需要修改Word中的样式,实现排版的个性化。 如何同步样式到其他电脑上? Word中的样式是由Normal.dotm文件控制的,对样式所有的设置和修改,都会保存到这个问题件中,所以我们只需要在设置好样式以后ÿ…...
力扣 —— 跳跃游戏
题目一(中等) 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 1&…...
SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异
在现代互联网环境中,使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私,还是为了访问某些特定资源,代理IP都扮演着重要的角色。今天,我们就来聊聊SOCKS5代理和HTTP代理,看看这两者到底哪个更快…...
工具介绍---效率高+实用
Visual Studio Code (VS Code) 功能特点: 智能代码提示:内置的智能代码提示功能可以自动完成函数、变量等的输入,提高代码编写速度。插件丰富:支持成千上万的扩展插件,例如代码片段、主题、Linting等,能够…...
做全屏轮播的网站有哪些/seo排名快速刷
2022年9月秋招算法工程师笔试题 1 题目 括号匹配问题 定义一个括号串的权值为,它的最长合法括号子序列的长度,例如()())的权值是4,因为它的最长合法括号子序列为()(),求一个给定括号串的所有子串权值之和。 注意,我忘了题目&am…...
wordpress seo by yoast中文/seo技术分享
OLED显示电容式土壤湿度传感器数据 本文将演示如何在OLED中显示土壤湿度传感器数据以及不同的数据值范围,使用不同的表情图片显示。 本次实例主要通过如下步骤来完成: 土壤湿度传感器数据采集OLEDc驱动采集数据处理及OLED显示在前面的文章中,对OLED及其驱动做了详细的介绍,…...
做产地证网站/武汉java培训机构排名榜
5、链表适用于写操作多,读操作少的场景。 二、单链表 链表是有序的列表,但是它在内存中存储如下: 上图小结: 1、链表是以节点的方式来存储,是链式存储 2、每个节点包含data域,next域:指向下一…...
东莞网站建设设计公司/十大品牌营销策划公司
2019独角兽企业重金招聘Python工程师标准>>> 其实想做聚焦时提示文字不消失,光标在提示语前面,就像正常的placeholder属性,但是setSelectionRance()方法不是很好用,后面学习之后再制作 <script type"text/javascript"> (function($,win,do…...
哈尔滨网站制作公司价格/google关键词挖掘工具
起源 自己经历过的面试也不少了,互联网的、外企的,都有。总结一下这些面试的经验,发现面试官问的问题其实不外乎几个大类,玩不出太多新鲜玩意的。细细想来,面试官拥有以下七种武器。恰似古龙先生笔下的武侠世界中的七种…...
怎么做微网站/免费制作网页平台
一个类型允许定义多个实例构造器,在使用过程中确实是十分方便的。但是,在定义这些构造器时,如果稍不留神,可能就使你的代码编译后产生了好多不必要的垃圾,增加了程序集的大小,也不够简洁。 例如:…...