vibrator-guidelines.md 3.0 KB
Newer Older
H
update  
HelloCrease 已提交
1 2 3 4 5 6
# Vibrator开发指导


## 场景介绍

当设备需要设置不同的振动效果时,可以调用Vibrator模块,例如:设备的按键可以设置不同强度和不同时长的振动,闹钟和来电可以设置不同强度和时长的单次或周期振动。
7

8
详细的接口介绍请参考[Vibrator接口](../reference/apis/js-apis-vibrator.md)
H
update  
HelloCrease 已提交
9 10 11 12


## 接口说明

C
cff-gite 已提交
13 14 15 16 17 18
| 模块          | 接口名                                                       | 描述                                                         |
| ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| ohos.vibrator | startVibration(effect: VibrateEffect, attribute: VibrateAttribute): Promise<void> | 根据指定振动效果和振动属性触发马达振动,使用Promise异步回调。 |
| ohos.vibrator | startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback<void>): void | 根据指定振动效果和振动属性触发马达振动,使用Callback异步回调。 |
| ohos.vibrator | stopVibration(stopMode: VibratorStopMode): Promise<void> | 按照指定模式停止马达的振动。                                 |
| ohos.vibrator | stopVibration(stopMode: VibratorStopMode, callback: AsyncCallback<void>): void | 按照指定模式停止马达的振动。                                 |
H
update  
HelloCrease 已提交
19 20 21 22


## 开发步骤

H
h00514358 已提交
23
1. 控制设备上的振动器,需要申请权限ohos.permission.VIBRATE。具体配置方式请参考[权限申请声明](../security/accesstoken-guidelines.md)
H
update  
HelloCrease 已提交
24

L
li-yaoyao777 已提交
25
2. 根据指定振动效果和振动属性触发马达振动。
C
cff-gite 已提交
26 27

   ```js
C
cff-gite 已提交
28
   import vibrator from '@ohos.vibrator';
C
cff-gite 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
   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);
   }
   ```

L
li-yaoyao777 已提交
48
3. 按照指定模式停止马达的振动。 
C
cff-gite 已提交
49 50

   ```js
C
cff-gite 已提交
51
   import vibrator from '@ohos.vibrator';
C
cff-gite 已提交
52 53 54 55 56 57 58 59 60 61 62 63
   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);
   }
L
li-yaoyao777 已提交
64
   ```
C
cff-gite 已提交
65
   
C
cff-gite 已提交
66 67
   

Z
zengyawen 已提交
68 69 70 71
## 相关实例

针对振动开发,有以下相关实例可供参考:

72
- [`Vibrator`:振动(ArkTS)(API8)](https://gitee.com/openharmony/applications_app_samples/tree/master/device/Vibrator)