js-apis-vibrator.md 7.4 KB
Newer Older
Z
zengyawen 已提交
1
# 振动
Z
zengyawen 已提交
2

C
cff-gite 已提交
3 4 5 6 7 8
## 模块说明

vibrator模块提供控制马达振动的能力,如通过接口控制马达启动马达振动,停止马达振动等。

小器件是指用于向外传递信号的设备,包括马达和LED灯,本组件对开发者提供控制马达振动和LED灯开关的能力。

H
HelloCrease 已提交
9 10
> **说明:**
>
Z
zengyawen 已提交
11
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
12

Z
zengyawen 已提交
13 14

## 导入模块
Z
zengyawen 已提交
15

H
HelloCrease 已提交
16
```js
17
import vibrator from '@ohos.vibrator';
Z
zengyawen 已提交
18 19
```

20
## vibrator.vibrate
Z
zengyawen 已提交
21 22 23

vibrate(duration: number): Promise<void>

Z
zengyawen 已提交
24 25
按照指定持续时间触发马达振动。

C
cff-gite 已提交
26
**权限列表**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
27 28 29

**系统能力**:SystemCapability.Sensors.MiscDevice

Z
zengyawen 已提交
30

H
HelloCrease 已提交
31 32 33 34
**参数:** 
| 参数名      | 类型     | 必填   | 说明           |
| -------- | ------ | ---- | ------------ |
| duration | number | 是    | 指示马达振动的持续时间。 |
Z
zengyawen 已提交
35

H
HelloCrease 已提交
36 37 38 39
**返回值:** 
| 类型                  | 说明          |
| ------------------- | ----------- |
| Promise<void> | 指示触发振动是否成功。 |
Z
zengyawen 已提交
40

Z
zengyawen 已提交
41

H
HelloCrease 已提交
42
**示例:** 
H
HelloCrease 已提交
43
  ```js
44 45 46 47 48
  vibrator.vibrate(1000).then(()=>{
      console.log("Promise returned to indicate a successful vibration.");
  }, (error)=>{
      console.log("error.code"+error.code+"error.message"+error.message);
  });
Z
zengyawen 已提交
49
  ```
Z
zengyawen 已提交
50

Z
zengyawen 已提交
51

52
## vibrator.vibrate
Z
zengyawen 已提交
53 54

vibrate(duration: number, callback?: AsyncCallback<void>): void
Z
zengyawen 已提交
55 56 57

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

C
cff-gite 已提交
58
**权限列表**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
59 60 61

**系统能力**:SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
62 63 64 65 66
**参数:** 
| 参数名      | 类型                        | 必填   | 说明                      |
| -------- | ------------------------- | ---- | ----------------------- |
| duration | number                    | 是    | 指示马达振动的持续时间。            |
| callback | AsyncCallback<void> | 否    | 马达执行振动的回调函数,指示触发振动是否成功。 |
Z
zengyawen 已提交
67

H
HelloCrease 已提交
68
**示例:** 
H
HelloCrease 已提交
69
  ```js
Z
zengyawen 已提交
70
  vibrator.vibrate(1000,function(error){
71 72 73 74 75
      if(error){
          console.log("error.code"+error.code+"error.message"+error.message);
      }else{
          console.log("Callback returned to indicate a successful vibration.");
      }
Z
zengyawen 已提交
76 77
  })
  ```
Z
zengyawen 已提交
78 79


80
## vibrator.vibrate
Z
zengyawen 已提交
81 82

vibrate(effectId: EffectId): Promise<void>
Z
zengyawen 已提交
83 84 85

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

C
cff-gite 已提交
86
**权限列表**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
87 88 89

**系统能力**:SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
90 91 92 93
**参数:** 
| 参数名      | 类型                    | 必填   | 说明            |
| -------- | --------------------- | ---- | ------------- |
| effectId | [EffectId](#effectid) | 是    | 指示马达振动效果的字符串。 |
Z
zengyawen 已提交
94

H
HelloCrease 已提交
95 96 97 98
**返回值:** 
| 类型                  | 说明          |
| ------------------- | ----------- |
| Promise<void> | 指示触发振动是否成功。 |
Z
zengyawen 已提交
99

H
HelloCrease 已提交
100
**示例:** 
H
HelloCrease 已提交
101
  ```js
102 103 104 105 106
  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);
  });
Z
zengyawen 已提交
107
  ```
Z
zengyawen 已提交
108

Z
zengyawen 已提交
109

110
## vibrator.vibrate
Z
zengyawen 已提交
111 112

vibrate(effectId: EffectId, callback?: AsyncCallback<void>): void
Z
zengyawen 已提交
113 114 115

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

C
cff-gite 已提交
116
**权限列表**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
117 118 119

**系统能力**:SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
120 121 122 123 124
**参数:** 
| 参数名      | 类型                        | 必填   | 说明                      |
| -------- | ------------------------- | ---- | ----------------------- |
| effectId | [EffectId](#effectid)     | 是    | 指示马达振动效果的字符串。           |
| callback | AsyncCallback<void> | 否    | 马达执行振动的回调函数,指示触发振动是否成功。 |
Z
zengyawen 已提交
125

H
HelloCrease 已提交
126
**示例:** 
H
HelloCrease 已提交
127
  ```js
128 129 130 131 132 133
  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.");
      }
Z
zengyawen 已提交
134 135
  })
  ```
Z
zengyawen 已提交
136 137


138
## vibrator.stop
Z
zengyawen 已提交
139 140

stop(stopMode: VibratorStopMode): Promise<void>
Z
zengyawen 已提交
141 142 143

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

C
cff-gite 已提交
144
**权限列表**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
145 146 147

**系统能力**:SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
148 149 150 151
**参数:** 
| 参数名      | 类型                                    | 必填   | 说明              |
| -------- | ------------------------------------- | ---- | --------------- |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是    | 指示马达要停止指定的振动模式。 |
Z
zengyawen 已提交
152

H
HelloCrease 已提交
153 154 155 156
**返回值:** 
| 类型                  | 说明          |
| ------------------- | ----------- |
| Promise<void> | 指示停止振动是否成功。 |
Z
zengyawen 已提交
157

H
HelloCrease 已提交
158
**示例:** 
H
HelloCrease 已提交
159
  ```js
160 161 162 163 164
  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);
  });
Z
zengyawen 已提交
165
  ```
Z
zengyawen 已提交
166 167


168
## vibrator.stop
Z
zengyawen 已提交
169 170

stop(stopMode: VibratorStopMode, callback?: AsyncCallback<void>): void;
Z
zengyawen 已提交
171 172 173

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

C
cff-gite 已提交
174
**权限列表**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
175 176 177

**系统能力**:SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
178 179 180 181 182
**参数:** 
| 参数名      | 类型                                    | 必填   | 说明                      |
| -------- | ------------------------------------- | ---- | ----------------------- |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是    | 指示马达要停止指定的振动模式。         |
| callback | AsyncCallback<void>             | 否    | 马达停止振动的回调函数,指示停止振动是否成功。 |
Z
zengyawen 已提交
183

H
HelloCrease 已提交
184
**示例:** 
H
HelloCrease 已提交
185
  ```js
186 187 188 189 190 191
  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.");
      }
Z
zengyawen 已提交
192 193
  })
  ```
Z
zengyawen 已提交
194 195


Z
zengyawen 已提交
196
## EffectId
Z
zengyawen 已提交
197 198 199

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

C
cff-gite 已提交
200 201
**系统能力**:以下各项对应的系统能力均为SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
202 203
| 名称                 | 默认值                  | 说明              |
| ------------------ | -------------------- | --------------- |
Z
zengyawen 已提交
204
| EFFECT_CLOCK_TIMER | "haptic.clock.timer" | 调整定时器时振动器的振动效果。 |
Z
zengyawen 已提交
205 206


Z
zengyawen 已提交
207 208 209
## VibratorStopMode

表示马达要停止指定的振动模式。
Z
zengyawen 已提交
210

C
cff-gite 已提交
211 212
**系统能力**:以下各项对应的系统能力均为SystemCapability.Sensors.MiscDevice

H
HelloCrease 已提交
213 214 215
| 名称                        | 默认值      | 说明                                       |
| ------------------------- | -------- | ---------------------------------------- |
| VIBRATOR_STOP_MODE_TIME   | "time"   | 停止模式为duration模式的振动。即触发振动时参数类型为number,参数本身为指示振动持续时间的触发方式。 |
Z
zengyawen 已提交
216
| VIBRATOR_STOP_MODE_PRESET | "preset" | 停止模式为预置EffectId的振动。即触发振动时参数类型为EffectId,参数本身为指示马达振动效果的字符串的触发方式。 |