振动

2024-01-23 17:49 更新

vibrator模块提供控制马达振动启、停的能力。

说明

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

导入模块

  1. import vibrator from '@ohos.vibrator';

vibrator.startVibration9+

startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

effect

VibrateEffect

马达振动效果。

attribute

VibrateAttribute

马达振动属性。

callback

AsyncCallback<void>

回调函数,当马达振动成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见 ohos.vibrator错误码

错误码ID

错误信息

14600101

Device operation failed.

示例:

  1. try {
  2. vibrator.startVibration({
  3. type: 'time',
  4. duration: 1000,
  5. }, {
  6. id: 0,
  7. usage: 'alarm'
  8. }, (error) => {
  9. if (error) {
  10. console.error('vibrate fail, error.code: ' + error.code + 'error.message: ', + error.message);
  11. return;
  12. }
  13. console.log('Callback returned to indicate a successful vibration.');
  14. });
  15. } catch (err) {
  16. console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
  17. }

vibrator.startVibration9+

startVibration(effect: VibrateEffect, attribute: VibrateAttribute): Promise<void>

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

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

effect

VibrateEffect

马达振动效果。

attribute

VibrateAttribute

马达振动属性。

返回值:

类型

说明

Promise<void>

Promise对象。

错误码

以下错误码的详细介绍请参见 ohos.vibrator错误码

错误码ID

错误信息

14600101

Device operation failed.

示例:

  1. try {
  2. vibrator.startVibration({
  3. type: 'time',
  4. duration: 1000
  5. }, {
  6. id: 0,
  7. usage: 'alarm'
  8. }).then(() => {
  9. console.log('Promise returned to indicate a successful vibration');
  10. }, (error) => {
  11. console.error('error.code' + error.code + 'error.message' + error.message);
  12. });
  13. } catch (err) {
  14. console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
  15. }

vibrator.stopVibration9+

stopVibration(stopMode: VibratorStopMode, callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

stopMode

VibratorStopMode

指定的停止振动模式。

callback

AsyncCallback<void>

回调函数。当马达停止振动成功,err为undefined,否则为错误对象。

示例:

  1. try {
  2. // 按照固定时长振动
  3. vibrator.startVibration({
  4. type: 'time',
  5. duration: 1000,
  6. }, {
  7. id: 0,
  8. usage: 'alarm'
  9. }, (error) => {
  10. if (error) {
  11. console.error('vibrate fail, error.code: ' + error.code + 'error.message: ', + error.message);
  12. return;
  13. }
  14. console.log('Callback returned to indicate a successful vibration.');
  15. });
  16. } catch (err) {
  17. console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
  18. }
  19. try {
  20. // 按照VIBRATOR_STOP_MODE_TIME模式停止振动
  21. vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_TIME, function (error) {
  22. if (error) {
  23. console.log('error.code' + error.code + 'error.message' + error.message);
  24. return;
  25. }
  26. console.log('Callback returned to indicate successful.');
  27. })
  28. } catch (err) {
  29. console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
  30. }

vibrator.stopVibration9+

stopVibration(stopMode: VibratorStopMode): Promise<void>

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

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

stopMode

VibratorStopMode

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

返回值:

类型

说明

Promise<void>

Promise对象。

示例:

  1. try {
  2. // 按照固定时长振动
  3. vibrator.startVibration({
  4. type: 'time',
  5. duration: 1000
  6. }, {
  7. id: 0,
  8. usage: 'alarm'
  9. }).then(() => {
  10. console.log('Promise returned to indicate a successful vibration');
  11. }, (error) => {
  12. console.error('error.code' + error.code + 'error.message' + error.message);
  13. });
  14. } catch (err) {
  15. console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
  16. }
  17. try {
  18. // 按照VIBRATOR_STOP_MODE_TIME模式停止振动
  19. vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_TIME).then(() => {
  20. console.log('Promise returned to indicate a successful vibration.');
  21. }, (error) => {
  22. console.log('error.code' + error.code + 'error.message' + error.message);
  23. });
  24. } catch (err) {
  25. console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
  26. }

EffectId

预置的振动效果。

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

名称

说明

EFFECT_CLOCK_TIMER

"haptic.clock.timer"

描述用户调整计时器时的振动效果。

VibratorStopMode

停止的振动模式。

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

名称

说明

VIBRATOR_STOP_MODE_TIME

"time"

停止模式为duration模式的振动。

VIBRATOR_STOP_MODE_PRESET

"preset"

停止模式为预置EffectId的振动。

VibrateEffect9+

马达振动效果。

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

类型

说明

VibrateTime

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

VibratePreset

按照预置振动类型触发马达振动。

VibrateTime9+

马达振动时长。

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

名称

说明

type

"time"

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

duration

-

马达持续振动时长, 单位ms。

VibratePreset9+

马达预置振动类型。

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

名称

说明

type

"preset"

按照预置振动效果触发马达振动。

effectId

-

预置的振动效果ID。

count

-

重复振动的次数。

VibrateAttribute9+

马达振动属性。

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

名称

说明

id

0

振动器id。

usage

-

马达振动的使用场景。

Usage9+

振动使用场景。

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

名称

类型

说明

unknown

string

没有明确使用场景,最低优先级。

alarm

string

用于警报场景。

ring

string

用于铃声场景。

notification

string

用于通知场景。

communication

string

用于通信场景。

touch

string

用于触摸场景。

media

string

用于多媒体场景。

physicalFeedback

string

用于物理反馈场景。

simulateReality

string

用于模拟现实场景。

vibrator.vibrate(deprecated)

vibrate(duration: number): Promise<void>

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

从API version 9 开始不再维护,建议使用 vibrator.startVibration 代替。

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

duration

number

马达振动时长, 单位ms。

返回值:

类型

说明

Promise<void>

Promise对象。

示例:

  1. vibrator.vibrate(1000).then(() => {
  2. console.log('Promise returned to indicate a successful vibration.');
  3. }, (error) => {
  4. console.log('error.code' + error.code + 'error.message' + error.message);
  5. });

vibrator.vibrate(deprecated)

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

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

从API version 9 开始不再维护,建议使用 vibrator.startVibration 代替。

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

duration

number

马达振动时长, 单位ms。

callback

AsyncCallback<void>

回调函数。当马达振动成功,err为undefined,否则为错误对象。

示例:

  1. vibrator.vibrate(1000, function (error) {
  2. if (error) {
  3. console.log('error.code' + error.code + 'error.message' + error.message);
  4. } else {
  5. console.log('Callback returned to indicate a successful vibration.');
  6. }
  7. })

vibrator.vibrate(deprecated)

vibrate(effectId: EffectId): Promise<void>

按照预置振动效果触发马达振动。

从API version 9 开始不再维护,建议使用 vibrator.startVibration 代替。

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

effectId

EffectId

预置的振动效果ID。

返回值:

类型

说明

Promise<void>

Promise对象。

示例:

  1. vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER).then(() => {
  2. console.log('Promise returned to indicate a successful vibration.');
  3. }, (error) => {
  4. console.log('error.code' + error.code + 'error.message' + error.message);
  5. });

vibrator.vibrate(deprecated)

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

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

从API version 9 开始不再维护,建议使用 vibrator.startVibration 代替。

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

effectId

EffectId

预置的振动效果ID。

callback

AsyncCallback<void>

回调函数。当马达振动成功,err为undefined,否则为错误对象。

示例:

  1. vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER, function (error) {
  2. if (error) {
  3. console.log('error.code' + error.code + 'error.message' + error.message);
  4. } else {
  5. console.log('Callback returned to indicate a successful vibration.');
  6. }
  7. })

vibrator.stop(deprecated)

stop(stopMode: VibratorStopMode): Promise<void>

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

从API version 9 开始不再维护,建议使用 vibrator.stopVibration 代替。

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

stopMode

VibratorStopMode

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

返回值:

类型

说明

Promise<void>

Promise对象。

示例:

  1. // 按照effectId类型启动振动
  2. vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER, function (error) {
  3. if (error) {
  4. console.log('error.code' + error.code + 'error.message' + error.message);
  5. } else {
  6. console.log('Callback returned to indicate a successful vibration.');
  7. }
  8. })
  9. // 使用VIBRATOR_STOP_MODE_PRESET模式停止振动
  10. vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then(() => {
  11. console.log('Promise returned to indicate a successful vibration.');
  12. }, (error) => {
  13. console.log('error.code' + error.code + 'error.message' + error.message);
  14. });

vibrator.stop(deprecated)

stop(stopMode: VibratorStopMode, callback?: AsyncCallback<void>): void

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

从API version 9 开始不再维护,建议使用 vibrator.stopVibration 代替。

需要权限:ohos.permission.VIBRATE

系统能力:SystemCapability.Sensors.MiscDevice

参数:

参数名

类型

必填

说明

stopMode

VibratorStopMode

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

callback

AsyncCallback<void>

回调函数。当马达停止振动成功,err为undefined,否则为错误对象。

示例:

  1. // 按照effectId类型启动振动
  2. vibrator.vibrate(vibrator.EffectId.EFFECT_CLOCK_TIMER, function (error) {
  3. if (error) {
  4. console.log('error.code' + error.code + 'error.message' + error.message);
  5. } else {
  6. console.log('Callback returned to indicate a successful vibration.');
  7. }
  8. })
  9. // 使用VIBRATOR_STOP_MODE_PRESET模式停止振动
  10. vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET, function (error) {
  11. if (error) {
  12. console.log('error.code' + error.code + 'error.message' + error.message);
  13. } else {
  14. console.log('Callback returned to indicate successful.');
  15. }
  16. })
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号