鸿蒙开发(NEXT/API 12)【穿戴设备信息查询】手机侧应用开发

news2024/12/25 1:47:06
// 在使用Wear Engine服务前,请导入WearEngine与相关模块
import { wearEngine } from '@kit.WearEngine';
import { BusinessError } from '@kit.BasicServicesKit';

查询穿戴设备是否支持某种WearEngine能力集

注意

该接口的调用需要在开发者联盟申请设备基础信息权限。

通过[Device]对象中的方法[isWearEngineCapabilitySupported]查询穿戴设备是否支持某种WearEngine能力集。

  1. 应用调用[wearEngine]中的[getDeviceClient]方法,获取[DeviceClient]对象。

    let deviceClient: wearEngine.DeviceClient = wearEngine.getDeviceClient(getContext(this));
    
  2. 调用[getConnectedDevices]方法,获取已连接的设备列表。

let deviceList: wearEngine.Device[] = [];
deviceClient.getConnectedDevices().then(devices => {
  // 存储已连接的设备列表
  deviceList = devices;
  console.info(`Succeeded in getting deviceList, devices number is ${deviceList.length}`);
}).catch((error: BusinessError) => {
  // 处理调用失败时捕获到的异常
  console.error(`Failed to get deviceList. Code is ${error.code}, message is ${error.message}`);
})
  1. 从设备列表中选取需要操作的设备。

  2. 调用[Device]对象中的[isWearEngineCapabilitySupported]接口可查询该设备是否支持传入的WearEngine能力(true:支持;false:不支持),以P2P能力为例。

if (deviceList.length > 0) {
  // 步骤3 从得到的设备列表中选取目标设备,并定义为device(假设数组中存在已连接设备且第一位即为目标设备)
  let targetDevice: wearEngine.Device = deviceList[0];

  // 步骤4 调用设备的方法查询是否支持某种WearEngine能力(以P2P为例)
  targetDevice.isWearEngineCapabilitySupported(wearEngine.WearEngineCapability.P2P_COMMUNICATION).then((isSupportP2P) => {
    console.info(`Succeeded in checking p2p capability, result is ${isSupportP2P}`);
  }).catch((error: BusinessError) => {
    console.error(`Failed to check p2p capability. Code is ${error.code}, message is ${error.message}`);
  })
}

查询穿戴设备是否支持某种Device能力集

注意

该接口的调用需要在开发者联盟申请设备基础信息权限。

通过[Device]对象中的方法[isDeviceCapabilitySupported]查询穿戴设备是否支持某种Device能力集。

  1. 应用调用[wearEngine]中的[getDeviceClient]方法,获取[DeviceClient]对象。

    let deviceClient: wearEngine.DeviceClient = wearEngine.getDeviceClient(getContext(this));
    
  2. 调用[getConnectedDevices]方法,获取已连接的设备列表。

let deviceList: wearEngine.Device[] = [];
deviceClient.getConnectedDevices().then(devices => {
  // 存储已连接的设备列表
  deviceList = devices;
  console.info(`Succeeded in getting deviceList, devices number is ${deviceList.length}`);
}).catch((error: BusinessError) => {
  // 处理调用失败时捕获到的异常
  console.error(`Failed to get deviceList. Code is ${error.code}, message is ${error.message}`);
})
  1. 从设备列表中选取需要操作的设备。

  2. 调用[Device]对象中的[isDeviceCapabilitySupported]接口可查询该设备是否支持传入的Device能力(true:支持;false:不支持)。

if (deviceList.length > 0) {
  // 步骤3 从得到的设备列表中选取目标设备,并定义为device(假设数组中存在已连接设备且第一位即为目标设备)
  let targetDevice: wearEngine.Device = deviceList[0];

  // 步骤4 调用设备的方法查询是否支持某种Device能力(以是否支持应用安装为例)
  targetDevice.isDeviceCapabilitySupported(wearEngine.DeviceCapability.APP_INSTALLATION).then((isSupportInstall) => {
    console.info(`Succeeded in checking install app capability, result is ${isSupportInstall}`);
  }).catch((error: BusinessError) => {
    console.error(`Failed to check install app capability. Code is ${error.code}, message is ${error.message}`);
  })
}

查询设备SN

注意

该接口的调用需要在开发者联盟申请设备标识符权限(受限开放)并获得用户授权
通过[Device]对象中的方法[getSerialNumber]查询穿戴设备的SN。

  1. 应用调用[wearEngine]中的[getDeviceClient]方法,获取[DeviceClient]对象。

    let deviceClient: wearEngine.DeviceClient = wearEngine.getDeviceClient(getContext(this));
    
  2. 调用[getConnectedDevices]方法,获取已连接的设备列表。

let deviceList: wearEngine.Device[] = [];
deviceClient.getConnectedDevices().then(devices => {
  // 存储已连接的设备列表
  deviceList = devices;
  console.info(`Succeeded in getting deviceList, devices number is ${deviceList.length}`);
}).catch((error: BusinessError) => {
  // 处理调用失败时捕获到的异常
  console.error(`Failed to get deviceList. Code is ${error.code}, message is ${error.message}`);
})
  1. 从设备列表中选取需要操作的设备。

  2. 调用[Device]对象中的方法[getSerialNumber]查询穿戴设备的SN。

if (deviceList.length > 0) {
  // 步骤3 从得到的设备列表中选取目标设备,并定义为device(假设数组中存在已连接设备且第一位即为目标设备)
  let targetDevice: wearEngine.Device = deviceList[0];

  // 步骤4 调用设备的方法查询SN
  targetDevice.getSerialNumber().then((sn) => {
    console.info(`Succeeded in getting device SN, result is ${sn}`);
  }).catch((error: BusinessError) => {
    console.error(`Failed to get device SN. 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 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 异常处理机制

目录 1.异常处理的五个关键字 测试一:理解try catch finally 的作用 测试二:设置想要捕获的异常类型 测试三:可以写多个catch。 2.异常快捷键 3.在方法体中抛出异常用throw;在方法参数后面抛出异常用throws (1&…

Ubuntu 手动安装 ollama

官方linux安装ollama命令: curl -fsSL https://ollama.com/install.sh | sh 运行结果: 由于官方提供的ollama安装命令老是安装中断,所以我选择手动安装。 手动安装步骤: 官网链接:ollama/docs/linux.md at main ollama/ollama…

盛事启幕 | 第三届OpenHarmony技术大会重磅官宣,邀您共绘智联未来

未来已来,科技何向? ——10月12日-13日众多大咖齐聚上海 聚焦OpenHarmony生态前沿 与您一同解码技术的下一片蓝海

【STM32单片机_(HAL库)】4-1【定时器TIM】定时器中断点灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 timer驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器中断配置流程main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "timer.h"int main(void) {H…

seata服务端部署

1.下载seata 官网下载地址:http://seata.io/zh-cn/blog/download.html 或者下载 作者已经下载的压缩包1.4.0 注意!!! 要参考对应的版本,否则可能出现无法正常启动的情况。 参考文档 下载完毕后解压压缩文件 2.修改配…

6个Android ANR面试题和优化方案

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 面试题 1、 解释什么是ANR以及它在Android中是如何产生的? ANR是指应用程序未响应,通常是因为主线程被阻塞导致无法及…

【性能测试】jmeter工具核心组件说明手册

前言 Apache JMeter 是一个用于压力测试和性能测量的开源工具,它被设计用来测试静态和动态资源(例如静态文件、CGI接口、Java 对象、数据库和 FTP 服务器),以及分析整体系统性能。JMeter提供了丰富的组件集,使得用户可…

国内邮件推送防拦截秘籍与内容优化技巧详解

企业需优化邮件内容、选择优质服务商、配置域名验证,避免垃圾邮件特征,控制发送频率和策略,以提高邮件送达率和用户互动率。ZohoCampaigns等平台提供多项功能助力邮件营销。 一、了解邮件拦截的常见原因 在讨论如何避免邮件被拦截之前&#…

Cookie Session Token的各种知识

Session 1、为什么有session? 因为HTTP是无状态协议,每次请求服务器并不知道历史请求的记录,Session和Cookie主要就是为了弥补无状态的特性 2、Session是什么 客户端请求时,服务端开辟一块内存空间存放Session对象,存…

(二)大模型调用

一、基本概念 1.1、Prompt 大模型的所有输入,即,我们每一次访问大模型的输入为一个 Prompt, 而大模型给我们的返回结果则被称为 Completion。 1.2、Temperature LLM 生成是具有随机性的,在模型的顶层通过选取不同预测概率的预测结…

SOLIDWORKS 2025 PDM 更新亮点:效率与性能的提升!

SOLIDWORKS PDM 持续致力于为用户提供更加高效、直观且灵活的数据管理解决方案。SOLIDWORKS 2025 也对PDM功能进行了多方面的改进,旨在提高工作效率,并增强系统性能。 以下是SOLIDWORKS 2025 PDM中的几项关键功能的详细介绍。 1经过改进的材料明细表可…

【C++】面向对象编程的三大特性:深入解析多态机制

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

这次PostgreSQL事故后,我把表膨胀清理工具撸了一遍

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

预训练技巧:在训练末尾对领域数据上采样

1. 简介 介绍了一种在模型训练结尾对领域数据上采样能够提升在benchmark上的指标。通过实验表明上采样比例在10-20%是能够在通用语言能力与目标benchmark保持权衡的最好比例。 2. 实验 数据:1T模型:decoder-only结构,7B大小,具…

Linux:进程间通信之共享内存

我们无论使用命名管道还是匿名管道,都是在文件层面上实现的通信,实际上还有基于系统层面的system v标准的进程间通信方式。 因为操作系统不相信用户,所以用户使用的时候只能通过调用的方式 进程间通信的本质:先让不同的进程看到…

C++中list类的使用及模拟实现

目录 1.C中list的底层结构 2.C中list容器各个接口函数的使用 3.迭代器的分类 3.1从功能上进行分类 3.2从性质上进行分类 4.list的结构 5.list的模拟实现 5.1默认成员函数(Member functions) 5.1.1构造函数(constructor) 5.1.1.1默认构造函数 5.1.1.2 initializer …

OSError: [WinError 126] 找不到指定的模块。 Error loading \torch\lib\fbgemm.dll“

遇到问题: 在使用torch 、 或者任何设计到torch的库中,只要导入torch就会报错 解决方案 https://blog.csdn.net/Changxing_J/article/details/140489278 https://blog.csdn.net/weixin_43591849/article/details/140715890(最终这个解决&…

初识Linux · 进程终止

目录 前言: 进程终止在干什么 进程终止的3种情况 进程如何终止 前言: 由上文的地址空间的学习,我们已经知道了进程不是单纯的等于PCB 自己的代码和数据,进程实际上是等于PCB mm_struct(地址空间) 页表 自己的代码和数据。…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之⑥:NL2SQL技术探讨

一、概述 NL2SQL(Natural Language to SQL)是一种将自然语言转换为结构化查询语言的技术。它可以帮助用户通过使用自然语言来与数据库进行交互,而无需了解复杂的SQL语法。 NL2SQL技术的背景: 随着人工智能的发展,越…

prometheus + alertmanager + PrometheusAlert实现告警

prometheus 收集监控数据 alertmanager 制定告警路由 PrometheusAlert 连通告警webhook 一、prometheus配置 https://prometheus.io/download/ 1.1、prometheus安装 包的下载直接wget就行,放在data目录下,解压后在prometheus目录下创建config和rule目录 配置了热重启&#…