@ohos.vibrator (Vibrator)

The vibrator module provides APIs for starting or stopping vibration.

NOTE

The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import vibrator from '@ohos.vibrator';

vibrator.startVibration9+

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

Starts vibration with the specified effect and attribute. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
effect VibrateEffect Yes Vibration effect.
attribute VibrateAttribute Yes Vibration attribute.
callback AsyncCallback<void> Yes Callback used to return the result. If the vibration starts, err is undefined; otherwise, err is an error object.

Error codes

For details about the error codes, see Vibrator Error Codes.

ID Error Message
14600101 Device operation failed.

Example

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

vibrator.startVibration9+

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

Starts vibration with the specified effect and attribute. This API uses a promise to return the result.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
effect VibrateEffect Yes Vibration effect.
attribute VibrateAttribute Yes Vibration attribute.

Return value

Type Description
Promise<void> Promise that returns no value.

Error codes

For details about the error codes, see Vibrator Error Codes.

ID Error Message
14600101 Device operation failed.

Example

try {
  vibrator.startVibration({
      type: 'time',
      duration: 1000
  }, {
      id: 0,
      usage: 'alarm'
  }).then(() => {
      console.log('Promise returned to indicate a successful vibration');
  }, (error) => {
      console.error('error.code' + error.code + 'error.message' + error.message);
  });
} catch (err) {
  console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
}

vibrator.stopVibration9+

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

Stops vibration in the specified mode. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
stopMode VibratorStopMode Yes Mode to stop the vibration.
callback AsyncCallback<void> Yes Callback used to return the result. If the vibration stops, err is undefined; otherwise, err is an error object.

Example

try {
  // Start vibration at a fixed duration.
  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);
}

try {
  // Stop vibration in VIBRATOR_STOP_MODE_TIME mode.
  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);
}

vibrator.stopVibration9+

stopVibration(stopMode: VibratorStopMode): Promise<void>

Stops vibration in the specified mode. This API uses a promise to return the result.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
stopMode VibratorStopMode Yes Mode to stop the vibration.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

try {
  // Start vibration at a fixed duration.
  vibrator.startVibration({
      type: 'time',
      duration: 1000
  }, {
      id: 0,
      usage: 'alarm'
  }).then(() => {
      console.log('Promise returned to indicate a successful vibration');
  }, (error) => {
      console.error('error.code' + error.code + 'error.message' + error.message);
  });
} catch (err) {
  console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
}

try {
  // Stop vibration in VIBRATOR_STOP_MODE_TIME mode.
  vibrator.stopVibration(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);
  });
} catch (err) {
  console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
}

EffectId

Describes the preset vibration effect ID.

System capability: SystemCapability.Sensors.MiscDevice

Name Value Description
EFFECT_CLOCK_TIMER "haptic.clock.timer" Vibration effect of the vibrator when a user adjusts the timer.

VibratorStopMode

Enumerates the modes available to stop the vibration.

System capability: SystemCapability.Sensors.MiscDevice

Name Value Description
VIBRATOR_STOP_MODE_TIME "time" The vibration to stop is in duration mode.
VIBRATOR_STOP_MODE_PRESET "preset" The vibration to stop is in EffectId mode.

VibrateEffect9+

Describes the vibration effect.

System capability: SystemCapability.Sensors.MiscDevice

Type Description
VibrateTime Triggers vibration with the specified duration. This API uses a promise to return the result.
VibratePreset Vibration with a preset effect.

VibrateTime9+

Describes the vibration with the specified duration.

System capability: SystemCapability.Sensors.MiscDevice

Name Value Description
type "time" Vibration with the specified duration.
duration - Vibration duration, in ms.

VibratePreset9+

Describes the vibration with a preset effect.

System capability: SystemCapability.Sensors.MiscDevice

Name Value Description
type "preset" Vibration with the specified effect.
effectId - Preset vibration effect ID.
count - Number of vibrations to repeat.

VibrateAttribute9+

Describes the vibration attribute.

System capability: SystemCapability.Sensors.MiscDevice

Name Value Description
id 0 Vibrator ID.
usage - Vibration scenario.

Usage9+

Enumerates the vibration scenarios.

System capability: SystemCapability.Sensors.MiscDevice

Name Type Description
unknown string Unknown scenario, with the lowest priority.
alarm string Vibration for alarms.
ring string Vibration for incoming calls.
notification string Vibration for notifications.
communication string Vibration for communication.
touch string Touch vibration scenario.
media string Multimedia vibration scenario.
physicalFeedback string Physical feedback vibration scenario.
simulateReality string Simulated reality vibration scenario.

vibrator.vibrate(deprecated)

vibrate(duration: number): Promise<void>

Triggers vibration with the specified duration. This API uses a promise to return the result.

This API is deprecated since API version 9. You are advised to use vibrator.startVibration instead.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
duration number Yes Vibration duration, in ms.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

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(deprecated)

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

Triggers vibration with the specified duration. This API uses an asynchronous callback to return the result.

This API is deprecated since API version 9. You are advised to use vibrator.startVibration instead.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
duration number Yes Vibration duration, in ms.
callback AsyncCallback<void> No Callback used to return the result. If the vibration starts, err is undefined; otherwise, err is an error object.

Example

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(deprecated)

vibrate(effectId: EffectId): Promise<void>

Triggers vibration with the specified effect. This API uses a promise to return the result.

This API is deprecated since API version 9. You are advised to use vibrator.startVibration instead.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
effectId EffectId Yes Preset vibration effect ID.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

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(deprecated)

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

Triggers vibration with the specified effect. This API uses an asynchronous callback to return the result.

This API is deprecated since API version 9. You are advised to use vibrator.startVibration instead.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
effectId EffectId Yes Preset vibration effect ID.
callback AsyncCallback<void> No Callback used to return the result. If the vibration starts, err is undefined; otherwise, err is an error object.

Example

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(deprecated)

stop(stopMode: VibratorStopMode): Promise<void>

Stops vibration in the specified mode. This API uses a promise to return the result.

This API is deprecated since API version 9. You are advised to use vibrator.stopVibration instead.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
stopMode VibratorStopMode Yes Mode to stop the vibration.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

// Start vibration based on the specified effect ID.
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.');
  }
})
// Stop vibration in VIBRATOR_STOP_MODE_PRESET mode.
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(deprecated)

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

Stops vibration in the specified mode. This API uses an asynchronous callback to return the result.

This API is deprecated since API version 9. You are advised to use vibrator.stopVibration instead.

Required permissions: ohos.permission.VIBRATE

System capability: SystemCapability.Sensors.MiscDevice

Parameters

Name Type Mandatory Description
stopMode VibratorStopMode Yes Mode to stop the vibration.
callback AsyncCallback<void> No Callback used to return the result. If the vibration stops, err is undefined; otherwise, err is an error object.

Example

// Start vibration based on the specified effect ID.
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.');
  }
})
// Stop vibration in VIBRATOR_STOP_MODE_PRESET mode.
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.');
  }
})