鸿蒙开发设备管理:【@ohos.vibrator (振动)】

振动

说明:
开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

复制代码
import vibrator from '@ohos.vibrator';

vibrator.vibrate

vibrate(duration: number): Promise

按照指定持续时间触发马达振动。

权限列表:ohos.permission.VIBRATE,该权限为系统权限

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名 类型 必填 说明
duration number 指示马达振动的持续时间。

返回值:

类型 说明
Promise 指示触发振动是否成功。

示例:

复制代码
vibrator.vibrate(1000).then(()=>{
    console.log("Promise returned to indicate a successful vibration.");
}, (error)=>{
    console.log("error.code"+error.code+"error.message"+error.message);
});

vibrator.vibrate

vibrate(duration: number, callback?: AsyncCallback): void

按照指定持续时间触发马达振动。

权限列表:ohos.permission.VIBRATE,该权限为系统权限

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名 类型 必填 说明
duration number 指示马达振动的持续时间。
callback AsyncCallback 马达执行振动的回调函数,指示触发振动是否成功。

示例:

复制代码
vibrator.vibrate(1000,function(error){
    if(error){
        console.log("error.code"+error.code+"error.message"+error.message);
    }else{
        console.log("Callback returned to indicate a successful vibration.");
    }
})

vibrator.vibrate

vibrate(effectId: EffectId): Promise

按照指定振动效果触发马达振动。

权限列表:ohos.permission.VIBRATE,该权限为系统权限

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名 类型 必填 说明
effectId EffectId 指示马达振动效果的字符串。

返回值:

类型 说明
Promise 指示触发振动是否成功。

示例:

复制代码
vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER).then(()=>{
    console.log("Promise returned to indicate a successful vibration.");
}, (error)=>{
    console.log("error.code"+error.code+"error.message"+error.message);
});

vibrator.vibrate

vibrate(effectId: EffectId, callback?: AsyncCallback): void

按照指定振动效果触发马达振动。

权限列表:ohos.permission.VIBRATE,该权限为系统权限

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名 类型 必填 说明
effectId EffectId 指示马达振动效果的字符串。
callback AsyncCallback 马达执行振动的回调函数,指示触发振动是否成功。

示例:

复制代码
vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER, function(error){
    if(error){
        console.log("error.code"+error.code+"error.message"+error.message);
    }else{
        console.log("Callback returned to indicate a successful vibration.");
    }
})

vibrator.stop

stop(stopMode: VibratorStopMode): Promise

按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。

权限列表:ohos.permission.VIBRATE,该权限为系统权限

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名 类型 必填 说明
stopMode VibratorStopMode 指示马达要停止指定的振动模式。

返回值:

类型 说明
Promise 指示停止振动是否成功。

示例:

复制代码
vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then(()=>{
    console.log("Promise returned to indicate a successful vibration.");
}, (error)=>{
    console.log("error.code"+error.code+"error.message"+error.message);
});

vibrator.stop

stop(stopMode: VibratorStopMode, callback?: AsyncCallback): void;

按照要停止指定的振动模式来停止马达的振动。如果要停止的振动模式与触发马达振动时的模式不相同,则调用本接口会失败。

权限列表:ohos.permission.VIBRATE,该权限为系统权限

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名 类型 必填 说明
stopMode VibratorStopMode 指示马达要停止指定的振动模式。
callback AsyncCallback 马达停止振动的回调函数,指示停止振动是否成功。

示例:

复制代码
vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET, function(error){
    if(error){
        console.log("error.code"+error.code+"error.message"+error.message);
    }else{
        console.log("Callback returned to indicate successful.");
    }
})

EffectId

表示马达振动效果的字符串。

系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.MiscDevice

名称 默认值 说明 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
EFFECT_CLOCK_TIMER "haptic.clock.timer" 调整定时器时振动器的振动效果。

VibratorStopMode

表示马达要停止指定的振动模式。

系统能力:以下各项对应的系统能力均为SystemCapability.Sensors.MiscDevice

名称 默认值 说明
VIBRATOR_STOP_MODE_TIME "time" 停止模式为duration模式的振动。即触发振动时参数类型为number,参数本身为指示振动持续时间的触发方式。
VIBRATOR_STOP_MODE_PRESET "preset" 停止模式为预置EffectId的振动。即触发振动时参数类型为EffectId,参数本身为指示马达振动效果的字符串的触发方式。
相关推荐
ZzT29 分钟前
怎么做才不会被 AI 替代?
人工智能·程序员
烬羽1 小时前
你真的理解 LLM 的"无状态"吗?从一段代码讲起
程序员
AskHarries4 小时前
把一个外部系统接成 MCP 工具
后端·程序员
threerocks5 小时前
AI编程的商业模式已经在互联网大厂跑通了
程序员·aigc·ai编程
用户526835677905 小时前
云原生落地:如何配置 Alertmanager 插件,将 Prometheus 告警直接打通至硬件声光语音终端?
程序员
用户852495071845 小时前
我跟 AI 说了名字它转头就忘,后来我手动给它加了个"记忆"
程序员
zzzzzz3105 小时前
当甲方说'logo放大的同时再缩小一点'时,我用 AI 把这个需求做出来了
javascript·css·程序员
Hilaku5 小时前
Node.js 还能再战十年?给你一个不换引擎的理由
前端·javascript·程序员
Hyyy17 小时前
token是什么?为什么大模型会有上下文长度的限制
程序员·llm·ai编程
谷子在生长21 小时前
纯血鸿蒙自定义弹窗最佳实践:从「到处复制」到「一行调用」
前端·harmonyos