鸿蒙开发(NEXT/API 12)【硬件(传感器开发)】传感器服务

news2024/11/18 1:21:47

使用场景

Sensor Service Kit(传感器服务)使应用程序能够从传感器获取原始数据,并提供振感控制能力。

  • Sensor(传感器)模块是应用访问底层硬件传感器的一种设备抽象概念。开发者可根据传感器提供的相关接口订阅传感器数据,并根据传感器数据定制相应的算法开发各类应用,比如指南针、运动健康、游戏等。
  • Vibrator(振动)模块最大化开放马达器件能力,通过拓展原生马达服务实现振动与交互融合设计,打造细腻精致的一体化振动体验和差异化体验,提升用户交互效率和易用性、提升用户体验、增强品牌竞争力。

约束限制

Sensor

  • 要使用传感器的功能,设备必须具有对应的传感器器件。
  • 针对某些传感器,开发者需要请求相应的权限,才能获取到相应传感器的数据。
  • 传感器数据订阅和取消订阅接口成对调用,当不再需要订阅传感器数据时,开发者需要调用取消订阅接口停止数据上报。

Vibrator

  • 要使用振动的功能,设备必须具有对应的器件。
  • 针对马达,开发者需要请求相应的权限才能使用。

传感器类型

系统传感器是应用访问底层硬件传感器的一种设备抽象概念。开发者根据传感器提供的[Sensor接口] ,可以查询设备上的传感器,订阅传感器数据,并根据传感器数据定制相应的算法开发各类应用,比如指南针、运动健康、游戏等。

传感器类型描述说明主要用途
ACCELEROMETER加速度传感器测量三个物理轴(x、y 和 z)上,施加在设备上的加速度(包括重力加速度),单位 : m/s²检测运动状态。
ACCELEROMETER_UNCALIBRATED未校准加速度传感器测量三个物理轴(x、y 和 z)上,施加在设备上的未校准的加速度(包括重力加速度),单位 : m/s²检测加速度偏差估值。
LINEAR_ACCELERATION线性加速度传感器测量三个物理轴(x、y 和 z)上,施加在设备上的线性加速度(不包括重力加速度),单位 : m/s²检测每个单轴方向上的线性加速度。
GRAVITY重力传感器测量三个物理轴(x、y 和 z)上,施加在设备上的重力加速度,单位 : m/s²。测量重力大小。
GYROSCOPE陀螺仪传感器测量三个物理轴(x、y 和 z)上,设备的旋转角速度,单位 : rad/s。测量旋转的角速度。
GYROSCOPE_UNCALIBRATED未校准陀螺仪传感器测量三个物理轴(x、y 和 z)上,设备的未校准旋转角速度,单位 : rad/s。测量旋转的角速度及偏差估值。
SIGNIFICANT_MOTION大幅度动作传感器测量三个物理轴(x、y 和 z)上,设备是否存在大幅度运动;如果取值为1则代表存在大幅度运动,取值为0则代表没有大幅度运动。用于检测设备是否存在大幅度运动。
PEDOMETER_DETECTION计步器检测传感器检测用户的计步动作;如果取值为1则代表用户产生了计步行走的动作;取值为0则代表用户没有发生运动。用于检测用户是否有计步的动作。
PEDOMETER计步器传感器统计用户的行走步数。用于提供用户行走的步数数据。
AMBIENT_TEMPERATURE环境温度传感器测量环境温度,单位 : 摄氏度 (°C)。测量环境温度。
MAGNETIC_FIELD磁场传感器测量三个物理轴向(x、y、z)上,环境地磁场,单位 : μT。创建指南针。
MAGNETIC_FIELD_UNCALIBRATED未校准磁场传感器测量三个物理轴向(x、y、z)上,未校准环境地磁场,单位 : μT。测量地磁偏差估值。
HUMIDITY湿度传感器测量环境的相对湿度,以百分比 (%) 表示。监测露点、绝对湿度和相对湿度。
BAROMETER气压计传感器测量环境气压,单位 : hPa 或 mbar。测量环境气压。
ORIENTATION方向传感器测量设备围绕所有三个物理轴(z、x、y)旋转的角度值,单位:rad。用于测量屏幕旋转的3个角度值。
ROTATION_VECTOR旋转矢量传感器测量设备旋转矢量,复合传感器:由加速度传感器、磁场传感器、陀螺仪传感器合成。检测设备相对于东北天坐标系的方向。
PROXIMITY接近光传感器测量可见物体相对于设备显示屏的接近或远离状态。通话中设备相对人的位置。
AMBIENT_LIGHT环境光传感器测量设备周围光线强度,单位:lux。自动调节屏幕亮度,检测屏幕上方是否有遮挡。
HEART_RATE心率传感器测量用户的心率数值。用于提供用户的心率健康数据。
WEAR_DETECTION佩戴检测传感器检测用户是否佩戴。用于检测用户是否佩戴智能穿戴。
HALL霍尔传感器测量设备周围是否存在磁力吸引。设备的皮套模式。

运作机制

传感器包含如下四个模块:Sensor API、Sensor Framework、Sensor Service和HDF层。

图1 传感器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Sensor API:提供传感器的基础API,主要包含查询传感器列表,订阅/取消传感器的数据、执行控制命令等,简化应用开发。
  • Sensor Framework:主要实现传感器的订阅管理,数据通道的创建、销毁、订阅与取消订阅,实现与SensorService的通信。
  • Sensor Service:主要实现HD_IDL层数据接收、解析、分发,前后台的策略管控,对该设备Sensor的管理,Sensor权限管控等。
  • HDF层:对不同的FIFO、频率进行策略选择,以及适配不同设备。

约束与限制

  1. 针对下面所列传感器,开发者需要请求相应的权限,才能获取到相应传感器的数据。

    传感器权限名敏感级别权限描述
    加速度传感器,加速度未校准传感器,线性加速度传感器ohos.permission.ACCELEROMETERsystem_grant允许应用读取加速度传感器的数据,包括:加速度传感器、加速度未校准传感器、线性加速度传感器。
    陀螺仪传感器,陀螺仪未校准传感器ohos.permission.GYROSCOPEsystem_grant允许应用读取陀螺仪传感器的数据,包括:陀螺仪传感器、陀螺仪未校准传感器。
    计步器ohos.permission.ACTIVITY_MOTIONuser_grant该权限允许应用读取用户当前的运动状态。例如:判断用户是否处于运动中、记录用户行走步数。
    心率计ohos.permission.READ_HEALTH_DATAuser_grant该权限允许应用读取用户的健康数据,如:心率数据等。
  2. 传感器数据订阅和取消订阅接口成对调用,当不再需要订阅传感器数据时,开发者需要调用取消订阅接口停止数据上报。

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙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/2175590.html

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

相关文章

新电脑需要安装杀毒软件吗?

以下是关于新电脑是否需要安装杀毒软件的建议: 如果您经常访问各类网站,下载未知来源的文件,或者使用外部存储设备交换数据,那么安装杀毒软件是有必要的。 操作步骤:选择一款知名的杀毒软件,如 360 杀毒、腾…

KaiOS statusbar 更新代码逻辑

简介 状态栏在system APP,KaiOS上面的代码路径是 gaia/apps/system。 statusbar.js 代码结构 gaia\apps\system\js\statusbar.js 状态栏逻辑 statusbar.js代码结构-1-变量 statusbar.js代码结构-2-detail StatuBar 对象 var StatusBar = {serviceState: function sb_updat…

[spring]SpringBoot拦截器 统一数据返回格式 统一异常处理

文章目录 一. 拦截器1. 什么是拦截器2. 拦截器的使用自定义拦截器注册配置器拦截路径 3. 适配器模式 二. 统一数据返回格式异常处理 三. 统一异常处理 一. 拦截器 1. 什么是拦截器 例如, 图书管理系统, 在访问图书list页面之前, 需要先进行登录, 如果没登录, 就需要进行强制跳…

SpringCloud入门(九)Feign实战应用和性能优化

一、Feign实战应用 Feign的客户端与服务提供者的controller代码非常相似: 有没有一种办法简化这种重复的代码编写呢? 方式一:继承 优点: 简单。实现了代码共享。 缺点:服务提供方、服务消费方紧耦合。参数列表中的注解…

【Docker】如何让docker容器正常使用nvidia显卡

首先确保宿主机正常安装了显卡驱动 nvidia-smi打印显卡信息如下: 安装nvidia-container-toolkit工具 sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker运行如下命令测试显卡是否在容器内可用 …

conda安装包离线安装环境

最近使用dokcerfile去创建镜像的时候,使用conda安装nvidia-cuda 总是失败,网络问题很大 可以通过离线的方式下载conda的安装包,然后放入文件中离线安装 通过以下命令得到安装包地址 conda search cudatoolkit --info 复制安装包地址到浏览器…

YOLOv5改进:Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU

💡💡💡现有IoU问题点:IoU (Intersection over Union)作为模型训练的关键,极大地显示了当前预测框与Ground Truth框之间的差异。后续研究者不断在IoU中加入更多的考虑因素,如中心距离、纵横比等。然而,仅仅提炼几何差异是有上限的;而且新的对价指数与借据本身存在潜在…

JMeter 实现 MQTT 协议压力测试 !

1. 下载jmeter,解压 https://jmeter.apache.org/download_jmeter.cgi 以 5.4.3 为例,下载地址: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip linux下解压: unzip apache-jmeter-5.4.3.zip 2. 下载…

最新最全的阿里大模型面试真题!看到就是赚到

前言 随着人工智能技术的飞速发展,计算机视觉(CV)、自然语言处理(NLP)、搜索、推荐、广告推送和风险控制等领域的岗位越来越受到追捧,掌握大型模型技术已成为这些岗位的必备技能。然而,目前公开…

19.3 打镜像部署到k8s中,prometheus配置采集并在grafana看图

本节重点介绍 : 打镜像,导出镜像,传输到各个节点并导入运行该项目配置prometheus和grafana 打镜像 本地build docker build -t ink8s-pod-metrics:v1 .build过程 导出镜像 docker save ink8s-pod-metrics > ink8s-pod-metrics.tar 传输到各个node…

PCB基础

一、简介 PCB:printed circuit board,印刷电路板 主要作用:传输信号、物理支撑、提供电源、散热 二、分类 2.1 按基材分类 陶瓷基板:包括氧化铝、氮化铝、碳化硅基板等,具有优异的导热性,适用于高温和高…

论文复现:考虑电网交互的风电、光伏与电池互补调度运行(MATLAB-Yalmip-Cplex全代码)

论文复现:考虑电网交互的风电、光伏与电池储能互补调度运行(MATLAB-Yalmip-Cplex全代码) 针对风电、光伏与电化学储能电站互补运行的问题,已有大量通过启发式算法寻优的案例,但工程上更注重实用性和普适性。Yalmip工具箱则是一种基于MATLAB平台的优化软件工具箱,被广泛应用…

车辆零部件检测和分割数据集-车体数据集-yolo格式-yolov5-yolov10可用

这些标签是用于实例分割任务中的类别,通常在汽车图像识别或自动驾驶技术中使用。以下是这些类别: back_bumper - 后保险杠back_glass - 后挡风玻璃back_left_door - 后左车门back_left_light - 后左灯back_right_door - 后右车门back_right_light - 后右…

Linux进程-2

一:进程优先级 基本概念 cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。 还可以把进程运行到指定的CPU上&#…

9_28代码实现登录框 注释

注释&#xff1a; .h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> // 防止头文件重复包含QT_BEGIN_NAMESPACE namespace Ui { class Widget; } //Ui表示命名空间的名称 //{ class Widget; } &#xff1a;表示在Ui命名空间中声明一个其他文件midget的类 QT_…

前段辅助工具分享(像素大厨)

引言&#xff1a; 我们在从事前端开发工作时&#xff0c;常会需要测量许多盒子的尺寸&#xff0c;颜色提取种种&#xff0c;切图&#xff0c;还有文字大小等信息&#xff0c;光从肉眼很难看出来&#xff0c;当然我们传统的会使用Photoshop来帮助我们完成这些工作&#xff0c;但…

LeetCode[中等] 17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 思路 回溯法 log&#xff1a;当前结果数组&#xff1b;level&#xff1a…

How to install JetBrains ToolBox in Ubuntu 22.04 LTS?

JetBrains Toolbox 的安装教程 在 2024 年 9 月 28 日&#xff0c;我想和大家分享一下 JetBrains Toolbox 的安装步骤&#xff0c;让你轻松开启高效的开发之旅。 一、准备工作 首先&#xff0c;确保你已经准备好了要安装的 JetBrains Toolbox 文件&#xff0c;可以从官方网站…

想入职网络安全?小白必看面试题(进阶版)(最终章)

大家好&#xff0c;我是Dest1ny&#xff01; 有同学问我为什么还要发面试题目。 因为我忘记发了。。。 这是最后一点面试题&#xff0c; 给大家发完&#xff01; Java基础 1. ★★☆☆☆ equals与的区别 比较引用是否相同&#xff0c;equals() 比较内容是否相同。 2. ★★…

MATLAB编写的RSSI在三维空间上的定位程序,锚点数量无限制(可自定义),带中文注释

文章目录 程序说明功能概述环境设置结果可视化函数定义运行结果程序获取 程序说明 功能概述 该程序实现了在三维空间中通过接收信号强度指示&#xff08;RSSI&#xff09;进行定位的功能。利用多个锚节点的信号强度测量&#xff0c;估计未知点的位置。该程序适用于无线定位应…