ITPub博客

首页 > 应用开发 > IT综合 > HarmonyOS 振动效果开发指导

HarmonyOS 振动效果开发指导

IT综合 作者:HarmonyOS开发者社区 时间:2023-12-04 11:31:10 0 删除 编辑

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);
}



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047792/viewspace-2998637/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-11-18

  • 博文量
    401
  • 访问量
    296734