HarmonyOS 振动效果开发指导

news/2024/7/21 8:18:53 标签: 华为, HarmonyOS

Vibrator 开发概述

振动器模块服务最大化开放硬工最新马达器件能力,通过拓展原生马达服务实现振动与交互融合设计,打造细腻精致的一体化振动体验和差异化体验,提升用户交互效率和易用性、提升用户体验、增强品牌竞争力。

运作机制

Vibrator 属于控制类小器件,主要包含以下四个模块:Vibrator API,Vibrator Framework,Vibrator Service 和 HDF 层。

图 1 控制类小器件中的 Vibrator

● Vibrator API:提供振动器基础的 API,主要包含振动器的列表查询,振动器的振动器效果查询,触发/关闭振动器等接口。

● Vibrator Framework:实现振动器的框架层管理,实现与控制类小器件 Service 的通信。

● Vibrator Service:实现控制器的服务管理。

● HDF 层:适配不同设备。

约束与限制

在使用振动器时,开发者需要配置请求振动器的权限 ohos.permission.VIBRATE,才能控制振动器振动。

Vibrator 开发指导

场景介绍

当设备需要设置不同的振动效果时,可以调用 Vibrator 模块,例如:设备的按键可以设置不同强度和不同时长的振动,闹钟和来电可以设置不同强度和时长的单次或周期振动。

详细的接口介绍请参考Vibrator接口。

接口说明

开发步骤

1.  控制设备上的振动器,需要申请权限 ohos.permission.VIBRATE。具体配置方式请参考权限申请声明。

2.  根据指定振动效果和振动属性触发马达振动。

import vibrator from '@ohos.vibrator';
try {
    vibrator.startVibration({
        type: 'time',
        duration: 1000,
    }, {
        id: 0,
        usage: 'alarm'
    }, (error) => {
        if (error) {
            console.error('vibrate fail, error.code: ' + error.code + 'error.message: ', + error.message);
            return;
        }
        console.log('Callback returned to indicate a successful vibration.');
    });
} catch (err) {
    console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
}

3.  按照指定模式停止马达的振动。

import vibrator from '@ohos.vibrator';
try {
  // 按照VIBRATOR_STOP_MODE_TIME模式停止振动
  vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_TIME, function (error) {
      if (error) {
          console.log('error.code' + error.code + 'error.message' + error.message);
          return;
      }
      console.log('Callback returned to indicate successful.');
  })
} catch (err) {
  console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
}


http://www.niftyadmin.cn/n/5245798.html

相关文章

springboot(ssm甘肃旅游工艺品商城 旅游管理系统Java(codeLW)

springboot(ssm甘肃旅游工艺品商城 旅游管理系统Java(code&LW) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&…

探索SpringBoot发展历程

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏&…

QT 中 QFileDialog::getOpenFileName 获取到文件路径,并打开这个文件。

简介 使用 QFileDialog::getOpenFileName 弹出选择文件窗口, 选中文件只会返回文件路径,如果要加直接打开,可以使用下面方法。 思路 QString filePath QFileDialog::getOpenFileName(this,"导出excel目录","C:\\Users\\18584…

[Java学习日记] 网络编程拓展

目录 一.使用TCP协议进行多发多收 二.实现服务端对客户端消息的接收与反馈 三.上传文件案例 四.接收多用户上传文件案例 五.线程池优化上传文件案例 六.控制台版聊天室(TCP协议) 一.使用TCP协议进行多发多收 使用TCP协议进行多发多收 1.在这个案例中…

postman实现接口自动化图解步骤,测试用例集,断言,动态参数,全局变量的随笔记录

实现接口自动化的方式有很多种,requests unittest ddt 的接口自动化框架有些朋友也有接触,但是考虑到很多没有代码基础,且这种框架实现需要的时间周期比较长,但是大多数公司的项目时间并不充裕。 这篇随笔主要就是记录实现效率…

【编程技术】CUDA TencoreCore编程实例说明

概述 通过一个m16n8k16矩阵乘法的CUDA TencoreCore编程实例,展示load/store mma 的矩阵乘法运行过程 动画实例 CUDA TensoreCore 编程实例

案例048:基于微信小程序电影订票系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

git 常用部分方法

git init // 初始化 在工作路径上创建主分支 git clone 地址 // 克隆远程仓库 git clone -b 分支名 地址 // 克隆分支的代码到本地 git status // 查看状态 git add 文件名 // 将某个文件存入暂存区 git checkout -- file // 撤销工作区的修改 例如git checkout -- readMe…