好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

【HarmonyOS】应用开发第九章-传感器和媒体.pptx

31页
  • 卖家[上传人]:re****.1
  • 文档编号:609857905
  • 上传时间:2025-05-27
  • 文档格式:PPTX
  • 文档大小:4.37MB
  • / 31 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,2022/9/8,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,【HarmonyOS】应用开发第九章-传感器和媒体,第八章,HarmonyOS,分布式应用开发,武汉大学计算机学院赵小刚,普通传感器分类,工作原理,普通传感器调用,相机调用,GPS,调用,传感器概述,HarmonyOS传感器是应用访问底层硬件传感器的一种设备抽象概念开发者根据传感器提供的Sensor API,可以查询设备上的传感器,订阅传感器的数据,并根据传感器数据定制相应的算法,开发各类应用,比如指南针、运动健康、游戏等根据传感器的用途,可以将传感器分为六大类:运动类传感器、环境类传感器、方向类传感器、光线类传感器、健康类传感器、其他类传感器(如霍尔传感器),每一大类传感器包含不同类型的传感器,某种类型的传感器可能是单一的物理传感器,也可能是由多个物理传感器复合而成运动类传感器,加速度传感器:主要用来检测运动状态,测量三个物理轴(x、y 和 z)上,施加在设备上的加速度(包括重力加速度),单位:m/s,2,。

      重力传感器:主要用来测量重力大小,测量三个物理轴(x、y 和 z)上,施加在设备上的重力加速度,单位:m/s,2,陀螺仪传感器:主要用来测量旋转的角速度,测量三个物理轴(x、y 和 z)上,设备的旋转角速度,单位:rad/s计步传感器:用于提供用户行走的步数数据,可以统计用户行走步数运动类传感器工作原理,主流传感器表示,SENSOR_TYPE_ACCELEROMETER:加速度传感器,SENSOR_TYPE_GRAVITY:重力传感器,SENSOR_TYPE_GYROSCOPE:陀螺仪传感器,SENSOR_TYPE_PEDOMETER:计步器传感器,SENSOR_TYPE_AMBIENT_TEMPERATURE:环境温度传感器,SENSOR_TYPE_MAGNETIC_FIELD:磁场传感器,普通传感器分类,工作原理,普通传感器调用,相机调用,GPS,调用,运作机制,HarmonyOSOpenHarmony传感器包含如下四个模块:Sensor API、Sensor Framework、Sensor Service、HD_IDL层Sensor API:提供传感器的基础API,主要包含查询传感器的列表、订阅/取消传感器的数据、执行控制命令等,简化应用开发。

      Sensor Framework:主要实现传感器的订阅管理,数据通道的创建、销毁、订阅与取消订阅,实现与SensorService的通信Sensor Service:主要实现HD_IDL层数据接收、解析、分发,前后台的策略管控,对该设备Sensor的管理;Sensor权限管控等HD_IDL层:对不同的FIFO、频率进行策略选择;以及对不同设备的适配核心模块,接口说明,HarmonyOS传感器提供的功能有:查询传感器的列表、订阅/取消订阅传感器数据、查询传感器的最小采样时间间隔、执行控制命令以订阅方向类别的传感器数据为例:,sensor.subscribeCompass(OBJECT):订阅罗盘数据变化针对同一个应用,多次点击调用时,会覆盖前面的调用效果,即仅最后一次调用生效开发步骤,权限配置:如果设备上使用了传感器权限列表中的传感器,需要请求相应的权限,开发者才能获取到传感器数据权限配置,开发者需要在config.json里面配置权限:,reqPermissions:,name:ohos.permission.GYROSCOPE,reason:,usedScene:,ability:,.MainAbility,when:inuse,普通传感器分类,工作原理,普通传感器调用,相机调用,GPS,调用,使用传感器,以使用方向类别的传感器为例,运动类、环境类、健康类等类别的传感器使用方法类似。

      步骤如下:,获取待订阅数据的传感器创建传感器回调订阅传感器数据接收并处理传感器数据取消订阅传感器数据方向传感器调用示例,1.,引入方向类传感器对象,import sensor from system.sensor;,2.,罗经数据订阅,3.,罗经数据取消,onInit(),sensor.subscribeCompass(,success:function(ret),console.log(get data direction:+ret.direction);,fail:function(data,code),console.error(subscribe compass fail,code:+code+,data:+data);,);,onDestroy(),sensor.unsubscribeCompass();,console.log(cancel data direction collection);,普通传感器分类,工作原理,普通传感器调用,相机调用,GPS,调用,相机调用,相机:HarmonyOS相机模块支持相机业务的开发,开发者可以通过已开放的接口实现相机硬件的访问、操作和新功能开发,最常见的操作如:预览、拍照、连拍和录像等。

      基本概念,相机静态能力:用于描述相机的固有能力的一系列参数,比如朝向、支持的分辨率等信息物理相机:物理相机就是独立的实体摄像头设备物理相机ID是用于标志每个物理摄像头的唯一字串逻辑相机:逻辑相机是多个物理相机组合出来的抽象设备,逻辑相机通过同时控制多个物理相机设备来完成相机某些功能,如大光圈、变焦等功能逻辑摄像机ID是一个唯一的字符串,标识多个物理摄像机的抽象能力帧捕获:相机启动后对帧的捕获动作统称为帧捕获主要包含单帧捕获、多帧捕获、循环帧捕获主要接口,一个页面仅支持一个camera组件,提供预览、拍照功能操作方法,拍照,takephotos(),var params=;,params.quality=high;,params.success=null;,params.fail=null;,plete=null;,this.$element(take).takePhoto(params),camera,width:300px;,height:300px;,普通传感器分类,工作原理,普通传感器调用,相机调用,GPS,调用,位置传感器,-,位置能力,移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气、新闻轶事、出行打车、旅行导航、运动记录。

      这些习以为常的活动,都离不开定位用户终端设备的位置当用户处于这些丰富的使用场景中时,系统的位置能力可以提供实时准确的位置数据对于开发者,设计基于位置体验的服务,也可以使应用的使用体验更贴近每个用户当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调用该模块的API接口,完成位置信息的获取基本概念,位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置,并用多种定位技术提供服务,如GNSS定位、基站定位、WLAN/蓝牙定位(基站定位、WLAN/蓝牙定位后续统称“网络定位技术”)通过这些定位技术,无论用户设备在室内或是户外,都可以准确地确定设备位置坐标:系统以1984年世界大地坐标系统为参考,使用经度、纬度数据描述地球上的一个位置GNSS定位:基于全球导航卫星系统,包含:GPS、GLONASS、北斗、Galileo等,通过导航卫星,设备芯片提供的定位算法,来确定设备准确位置,定位精度高基站定位:根据设备当前驻网基站和相邻基站的位置,估算设备当前位置此定位方式的定位结果精度相对较低,并且需要设备可以访问蜂窝网络WLAN、蓝牙定位:根据设备可搜索到的周围WLAN、蓝牙设备位置,估算设备当前位置。

      运作机制,位置能力作为系统为应用提供的一种基础服务,需要应用在所使用的业务场景,向系统主动发起请求,并在业务场景结束时,主动结束此请求,在此过程中系统会将实时的定位结果上报给应用使用设备的位置能力,需要用户进行确认并主动开启位置开关如果位置开关没有开启,系统不会向任何应用提供位置服务设备位置信息属于用户敏感数据,所以即使用户已经开启位置开关,应用在获取设备位置前仍需向用户申请位置访问权限在用户确认允许后,系统才会向应用提供位置服务获取设备的位置信息,开发者可以调用HarmonyOS位置相关接口,获取设备实时位置,或者最近的历史位置对于位置敏感的应用业务,建议获取设备实时位置信息如果不需要设备实时位置信息,并且希望尽可能的节省耗电,开发者可以考虑获取最近的历史位置接口说明,支持类型,geolocation.getLocation(OBJECT),参数说明,开发步骤,1.,应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息如未获得授权,可以向用户申请需要的位置权限系统提供的定位权限有:,ohos.permission.LOCATION,ohos.permission.LOCATION_IN_BACKGROUND,访问设备的位置信息,必须申请ohos.permission.LOCATION权限,并且获得用户授权。

      如果应用在后台运行时也需要访问设备位置,除需要将应用声明为允许后台运行外,还必须申请ohos.permission.LOCATION_IN_BACKGROUND权限,这样应用在切入后台之后,系统可以继续上报位置信息开发者可以在应用config.json文件中声明所需要的权限,示例代码如下:,config.json,reqPermissions:,name:ohos.permission.LOCATION,reason:$string:reason_description,usedScene:,ability:com.myapplication.LocationAbility,when:inuse,.,开发步骤,2.,为了使用位置传感器,需要引入头文件system.geolocation,获取位置管理对象geolocationimport geolocation from system.geolocation;,在页面初始化回调函数或自定义函数中调用该对象的方法getLocation来获取位置信息,onInit(),geolocation.getLocation(,success:function(data),console.log(success get location data.latitude:+data.latitude);,fail:function(data,code),console.log(fail to get location.code:+code+,data:+data);,),。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.