• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Vibrator开发指导
2
3
4## 场景介绍
5
6当设备需要设置不同的振动效果时,可以调用Vibrator模块,例如:设备的按键可以设置不同强度和不同时长的振动,闹钟和来电可以设置不同强度和时长的单次或周期振动。
7
8详细的接口介绍请参考[Vibrator接口](../reference/apis/js-apis-vibrator.md)。
9
10
11## 接口说明
12
13| 模块          | 接口名                                                       | 描述                                                         |
14| ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
15| ohos.vibrator | startVibration(effect: VibrateEffect, attribute: VibrateAttribute): Promise<void> | 根据指定振动效果和振动属性触发马达振动,使用Promise异步回调。 |
16| ohos.vibrator | startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback<void>): void | 根据指定振动效果和振动属性触发马达振动,使用Callback异步回调。 |
17| ohos.vibrator | stopVibration(stopMode: VibratorStopMode): Promise<void> | 按照指定模式停止马达的振动。                                 |
18| ohos.vibrator | stopVibration(stopMode: VibratorStopMode, callback: AsyncCallback<void>): void | 按照指定模式停止马达的振动。                                 |
19
20
21## 开发步骤
22
231. 控制设备上的振动器,需要申请权限ohos.permission.VIBRATE。具体配置方式请参考[权限申请声明](../security/accesstoken-guidelines.md)。
24
252. 根据指定振动效果和振动属性触发马达振动。
26
27   ```js
28   import vibrator from '@ohos.vibrator';
29   try {
30       vibrator.startVibration({
31           type: 'time',
32           duration: 1000,
33       }, {
34           id: 0,
35           usage: 'alarm'
36       }, (error) => {
37           if (error) {
38               console.error('vibrate fail, error.code: ' + error.code + 'error.message: ', + error.message);
39               return;
40           }
41           console.log('Callback returned to indicate a successful vibration.');
42       });
43   } catch (err) {
44       console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
45   }
46   ```
47
483. 按照指定模式停止马达的振动。
49
50   ```js
51   import vibrator from '@ohos.vibrator';
52   try {
53     // 按照VIBRATOR_STOP_MODE_TIME模式停止振动
54     vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_TIME, function (error) {
55         if (error) {
56             console.log('error.code' + error.code + 'error.message' + error.message);
57             return;
58         }
59         console.log('Callback returned to indicate successful.');
60     })
61   } catch (err) {
62     console.info('errCode: ' + err.code + ' ,msg: ' + err.message);
63   }
64   ```
65
66
67
68## 相关实例
69
70针对振动开发,有以下相关实例可供参考:
71
72- [`Vibrator`:振动(ArkTS)(API8)](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-3.2-Release/code/BasicFeature/DeviceManagement/Vibrator)