当前位置: 首页 > news >正文

高档网站模板重庆整站seo

高档网站模板,重庆整站seo,关键词与网站标题,网站续费自己做【HarmonyOS】鸿蒙应用实现手机摇一摇功能 一、前言 手机摇一摇功能,是通过获取手机设备,加速度传感器接口,获取其中的数值,进行逻辑判断实现的功能。 在鸿蒙中手机设备传感器ohos.sensor (传感器)的系统API监听有以下&#xf…

【HarmonyOS】鸿蒙应用实现手机摇一摇功能

一、前言

手机摇一摇功能,是通过获取手机设备,加速度传感器接口,获取其中的数值,进行逻辑判断实现的功能。

鸿蒙中手机设备传感器@ohos.sensor (传感器)的系统API监听有以下:
@ohos.sensor (传感器)官网API

  1. 加速度传感器
  2. 环境光传感器
  3. 气压计传感器
  4. 重力传感器
  5. 陀螺仪传感器
  6. 霍尔传感器
  7. 心率传感器
  8. 湿度传感器
  9. 线性加速度传感器
  10. 地磁传感器
  11. 方向传感器
  12. 计步器传感器
  13. 接近光传感器
  14. 旋转矢量传感器
  15. 大幅动作检测传感器
  16. 佩戴检测传感器

其中摇一摇用到的,加速度传感器是多个维度测算的,是指x、y、z三个方向上的加速度值。
主要测算一些瞬时加速或减速的动作。比如测量手机的运动速度和方向。
在这里插入图片描述

当用户拿着手机运动时,会出现上下摆动的情况,这样可以检测出加速度在某个方向上来回改变,通过检测这个来回改变的次数,可以计算出步数。

在游戏里能通过加速度传感器触发特殊指令。日常应用中的一些甩动切歌、翻转静音等也都用到了这枚传感器。

注意:
至于为什么不用线性加速传感器,是因为线性加速度传感器和加速度传感器在定义、工作原理以及应用场景上存在显著的区别。线性主要是来检测物体在直线方向上的位移。

二、功能开发思路:

1.根据通过@ohos.sensor接口,获取加速度传感器的数值,添加权限:ohos.permission.ACCELEROMETER

 {"name": "ohos.permission.ACCELEROMETER","reason": "$string:reason","usedScene": {"abilities": ["EntryAbility"],"when": "always"}}
 sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {}, { interval: 100000000 }); // 设置间隔为100000000 ns  = 0.1 s

2.将x,y,z三个方向的数值进行绝对值处理,获取运动数值

 sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {console.info(this.TAG, 'Succeeded in invoking on. X-coordinate component: ' + data.x);console.info(this.TAG,'Succeeded in invoking on. Y-coordinate component: ' + data.y);console.info(this.TAG,'Succeeded in invoking on. Z-coordinate component: ' + data.z);}, { interval: 100000000 }); // 设置间隔为100000000 ns  = 0.1 s

3.根据运动数值进行判断,是否符合摇一摇的运动区间

        let x = Math.abs(data.x);let y = Math.abs(data.y);let z  = Math.abs(data.z);this.message = "x : " + x + "  y: " +  y + " z: " + z;if(x > this.SWING_VAL || y > this.SWING_VAL || z > this.SWING_VAL){promptAction.showToast({message: "手机正在摇一摇!"})}

最后一步,当然就是使用手机设备进行代码功能效果的验证。
若没有真机设备,使用模拟器,点击该按钮可实现摇一摇手机的触发。
在这里插入图片描述
注意:
不使用加速传感器时,一定要移除监听。否则会白白损耗性能。

三、源码示例:

在这里插入图片描述

import { sensor } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { promptAction } from '@kit.ArkUI';

struct SensorTestPage {private TAG: string = "SenorTestPage";private SWING_VAL: number = 50; message: string = '';aboutToAppear(): void {try {// 订阅加速度传感器返回的数据sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {console.info(this.TAG, 'Succeeded in invoking on. X-coordinate component: ' + data.x);console.info(this.TAG,'Succeeded in invoking on. Y-coordinate component: ' + data.y);console.info(this.TAG,'Succeeded in invoking on. Z-coordinate component: ' + data.z);let x = Math.abs(data.x);let y = Math.abs(data.y);let z  = Math.abs(data.z);this.message = "x : " + x + "  y: " +  y + " z: " + z;if(x > this.SWING_VAL || y > this.SWING_VAL || z > this.SWING_VAL){promptAction.showToast({message: "手机正在摇一摇!"})}}, { interval: 100000000 }); // 设置间隔为100000000 ns  = 0.1 s} catch (error) {let e: BusinessError = error as BusinessError;console.error(this.TAG, `Failed to invoke on. Code: ${e.code}, message: ${e.message}`);}}aboutToDisappear(): void {sensor.off(sensor.SensorId.ACCELEROMETER);}build() {RelativeContainer() {Text(this.message).id('SenorTestPageHelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})}.height('100%').width('100%')}
}

注意:
记得添加ohos.permission.ACCELEROMETER权限,否则无法监听到加速传感器!

http://www.yidumall.com/news/99292.html

相关文章:

  • 电子商务网站规划与建设步骤怎样在平台上发布信息推广
  • 软件系统网站建设万网域名注册教程
  • wordpress标签路径搜狗优化排名
  • 做雕塑网站找哪家好网络公关公司联系方式
  • app开发有几种方式seo网站查询
  • 网站备案要如何取消上海搜索引擎优化1
  • 小程序模板素材淘宝关键词优化工具
  • 百度做网站的电话seo外包是什么意思
  • 食品行业做网站国外免费舆情网站有哪些软件
  • 网站如何在手机上显示seo搜索优化是什么呢
  • 怎么使用wordpress做网站武汉关键词排名工具
  • 做网站很挣多少钱微信公众号运营
  • 城乡建设局昆明seo关键词排名
  • 网站备案万网北京seo公司网站
  • 做网站发布网无锡网站制作无锡做网站
  • 网站登录 退出怎么做百度竞价怎么收费
  • design中国官网网站优化要多少钱
  • 网站字号网易搜索引擎
  • 2020疫情最新消息萧山区seo关键词排名
  • 鹤岗网站建设百度在线问答
  • 网站开发项目报告今日最新国际新闻
  • 最优惠的郑州网站建设做销售找客户渠道
  • 一个主做海贼王的网站指数基金怎么买
  • 网站建设准备创意营销
  • 企业网页设计素材西安企业网站seo
  • 城乡建设厅建设网站企业培训师资格证
  • 电子网站建设怎么做域名注册需要多少钱
  • 注册公司名字推荐新网站百度seo如何做
  • 贵州茅台酒股份有限公司网站免费营销培训
  • 怎么建个人网站网站广告收费标准