js-apis-vibrator.md 11.3 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
按照指定持续时间触发马达振动。

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

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

H
HelloCrease 已提交
30
**参数:** 
W
wuzhihuitmac 已提交
31

W
wuzhihuitmac 已提交
32 33 34
| 参数名   | 类型   | 必填 | 说明                   |
| -------- | ------ | ---- | ---------------------- |
| duration | number | 是   | 马达振动时长, 单位ms。 |
Z
zengyawen 已提交
35

H
HelloCrease 已提交
36
**返回值:** 
W
wuzhihuitmac 已提交
37

W
wuzhihuitmac 已提交
38 39 40
| 类型                | 说明          |
| ------------------- | ------------- |
| Promise<void> | Promise实例。 |
Z
zengyawen 已提交
41

H
HelloCrease 已提交
42
**示例:** 
W
wuzhihuitmac 已提交
43

H
HelloCrease 已提交
44
  ```js
45 46 47 48 49
  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 已提交
50
  ```
Z
zengyawen 已提交
51

W
wuzhihuitmac 已提交
52
## vibrator.vibrate<sup>9+</sup>
W
wuzhihuitmac 已提交
53 54 55 56 57

vibrate(effect: VibrateEffect, attribute: VibrateAttribute): Promise&lt;void&gt;

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

W
wuzhihuitmac 已提交
58
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
W
wuzhihuitmac 已提交
59 60 61 62 63

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

**参数:** 

W
wuzhihuitmac 已提交
64 65 66 67
| 参数名    | 类型                                  | 必填 | 说明           |
| --------- | ------------------------------------- | ---- | :------------- |
| effect    | [VibrateEffect](#vibrateeffect)       | 是   | 马达振动效果。 |
| attribute | [VibrateAttribute](#vibrateattribute) | 是   | 马达振动属性。 |
W
wuzhihuitmac 已提交
68 69 70 71 72 73 74 75 76 77 78

**返回值:** 

| 类型                | 说明          |
| ------------------- | ------------- |
| Promise&lt;void&gt; | Promise实例。 |

**示例:** 

```js
vibrator.vibrate({
W
wuzhihuitmac 已提交
79
    'type': 'time',
W
wuzhihuitmac 已提交
80 81
    'duration': 1000
}, {
W
wuzhihuitmac 已提交
82 83
   	'id': 0,
    'usage': 'alarm'
W
wuzhihuitmac 已提交
84
}).then((result)=>{
W
wuzhihuitmac 已提交
85
    console.log("Promise returned to indicate a successful vibration");
W
wuzhihuitmac 已提交
86
}).catch((error)=>{
W
wuzhihuitmac 已提交
87
    console.log("error.code"+error.code+"error.message"+error.message);
W
wuzhihuitmac 已提交
88 89
})
```
Z
zengyawen 已提交
90

91
## vibrator.vibrate
Z
zengyawen 已提交
92 93

vibrate(duration: number, callback?: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
94 95 96

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

W
wuzhihuitmac 已提交
97
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
98 99 100

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

H
HelloCrease 已提交
101
**参数:** 
W
wuzhihuitmac 已提交
102 103 104 105
| 参数名   | 类型                      | 必填 | 说明                     |
| -------- | ------------------------- | ---- | ------------------------ |
| duration | number                    | 是   | 马达振动时长, 单位ms。   |
| callback | AsyncCallback&lt;void&gt; | 否   | 指定的callback回调方法。 |
Z
zengyawen 已提交
106

H
HelloCrease 已提交
107
**示例:** 
W
wuzhihuitmac 已提交
108

H
HelloCrease 已提交
109
  ```js
Z
zengyawen 已提交
110
  vibrator.vibrate(1000,function(error){
111 112 113 114 115
      if(error){
          console.log("error.code"+error.code+"error.message"+error.message);
      }else{
          console.log("Callback returned to indicate a successful vibration.");
      }
Z
zengyawen 已提交
116 117
  })
  ```
Z
zengyawen 已提交
118 119


120
## vibrator.vibrate
Z
zengyawen 已提交
121 122

vibrate(effectId: EffectId): Promise&lt;void&gt;
Z
zengyawen 已提交
123

W
wuzhihuitmac 已提交
124
按照预置振动效果触发马达振动。
Z
zengyawen 已提交
125

W
wuzhihuitmac 已提交
126
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
127 128 129

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

H
HelloCrease 已提交
130
**参数:** 
W
wuzhihuitmac 已提交
131 132 133
| 参数名   | 类型                  | 必填 | 说明               |
| -------- | --------------------- | ---- | ------------------ |
| effectId | [EffectId](#effectid) | 是   | 预置的振动效果ID。 |
Z
zengyawen 已提交
134

H
HelloCrease 已提交
135
**返回值:** 
W
wuzhihuitmac 已提交
136 137 138
| 类型                | 说明          |
| ------------------- | ------------- |
| Promise&lt;void&gt; | Promise实例。 |
Z
zengyawen 已提交
139

H
HelloCrease 已提交
140
**示例:** 
H
HelloCrease 已提交
141
  ```js
142 143 144 145 146
  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 已提交
147
  ```
Z
zengyawen 已提交
148

Z
zengyawen 已提交
149

150
## vibrator.vibrate
Z
zengyawen 已提交
151 152

vibrate(effectId: EffectId, callback?: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
153 154 155

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

W
wuzhihuitmac 已提交
156
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
157 158 159

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

H
HelloCrease 已提交
160
**参数:** 
W
wuzhihuitmac 已提交
161 162 163 164
| 参数名   | 类型                      | 必填 | 说明                     |
| -------- | ------------------------- | ---- | ------------------------ |
| effectId | [EffectId](#effectid)     | 是   | 预置的振动效果ID。       |
| callback | AsyncCallback&lt;void&gt; | 否   | 指定的callback回调方法。 |
Z
zengyawen 已提交
165

H
HelloCrease 已提交
166
**示例:** 
W
wuzhihuitmac 已提交
167

H
HelloCrease 已提交
168
  ```js
169 170 171 172 173 174
  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 已提交
175 176
  })
  ```
Z
zengyawen 已提交
177

W
wuzhihuitmac 已提交
178
## vibrator.vibrate<sup>9+</sup>
W
wuzhihuitmac 已提交
179 180 181 182 183

vibrate(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback&lt;void&gt;): void

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

W
wuzhihuitmac 已提交
184
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
W
wuzhihuitmac 已提交
185 186 187 188 189

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

**参数:** 

W
wuzhihuitmac 已提交
190 191 192 193 194
| 参数名    | 类型                                  | 必填 | 说明                     |
| --------- | ------------------------------------- | ---- | :----------------------- |
| effect    | [VibrateEffect](#vibrateeffect)       | 是   | 马达振动效果。           |
| attribute | [VibrateAttribute](#vibrateattribute) | 是   | 马达振动属性。           |
| callback  | AsyncCallback&lt;void&gt;             | 是   | 指定的callback回调方法。 |
W
wuzhihuitmac 已提交
195 196 197 198 199

示例:

```js
vibrator.vibrate({
W
wuzhihuitmac 已提交
200
    'type':'time',
W
wuzhihuitmac 已提交
201 202
    'duration':1000,
},{
W
wuzhihuitmac 已提交
203
    'id':0,
W
wuzhihuitmac 已提交
204 205
    'usage': 'alarm'
}, (error)=>{
W
wuzhihuitmac 已提交
206 207
    if(error){
        console.log(TAG + " fail, error.code:"+error.code+",error.message:"+error.message);
W
wuzhihuitmac 已提交
208
    }else{
W
wuzhihuitmac 已提交
209 210
        console.log("Callback returned to indicate a successful vibration.");
    }
W
wuzhihuitmac 已提交
211 212
});
```
Z
zengyawen 已提交
213

214
## vibrator.stop
Z
zengyawen 已提交
215 216

stop(stopMode: VibratorStopMode): Promise&lt;void&gt;
Z
zengyawen 已提交
217 218 219

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

W
wuzhihuitmac 已提交
220
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
221 222 223

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

H
HelloCrease 已提交
224
**参数:** 
W
wuzhihuitmac 已提交
225 226 227
| 参数名   | 类型                                  | 必填 | 说明                     |
| -------- | ------------------------------------- | ---- | ------------------------ |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是   | 马达停止指定的振动模式。 |
Z
zengyawen 已提交
228

H
HelloCrease 已提交
229
**返回值:** 
W
wuzhihuitmac 已提交
230 231 232 233

| 类型                | 说明          |
| ------------------- | ------------- |
| Promise&lt;void&gt; | Promise实例。 |
Z
zengyawen 已提交
234

H
HelloCrease 已提交
235
**示例:** 
W
wuzhihuitmac 已提交
236

H
HelloCrease 已提交
237
  ```js
238 239 240 241 242
  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 已提交
243
  ```
Z
zengyawen 已提交
244 245


246
## vibrator.stop
Z
zengyawen 已提交
247 248

stop(stopMode: VibratorStopMode, callback?: AsyncCallback&lt;void&gt;): void;
Z
zengyawen 已提交
249 250 251

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

W
wuzhihuitmac 已提交
252
**需要权限**:ohos.permission.VIBRATE,该权限为系统权限
C
cff-gite 已提交
253 254 255

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

H
HelloCrease 已提交
256
**参数:** 
W
wuzhihuitmac 已提交
257 258 259 260
| 参数名   | 类型                                  | 必填 | 说明                     |
| -------- | ------------------------------------- | ---- | ------------------------ |
| stopMode | [VibratorStopMode](#vibratorstopmode) | 是   | 马达停止指定的振动模式。 |
| callback | AsyncCallback&lt;void&gt;             | 否   | 指定的callback回调方法。 |
Z
zengyawen 已提交
261

H
HelloCrease 已提交
262
**示例:** 
W
wuzhihuitmac 已提交
263

H
HelloCrease 已提交
264
  ```js
265 266 267 268 269 270
  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 已提交
271 272
  })
  ```
Z
zengyawen 已提交
273 274


Z
zengyawen 已提交
275
## EffectId
Z
zengyawen 已提交
276

W
wuzhihuitmac 已提交
277
马达振动效果的字符串。
Z
zengyawen 已提交
278

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

W
wuzhihuitmac 已提交
281 282 283
| 名称               | 默认值               | 说明               |
| ------------------ | -------------------- | ------------------ |
| EFFECT_CLOCK_TIMER | "haptic.clock.timer" | 预置的振动效果ID。 |
Z
zengyawen 已提交
284 285


Z
zengyawen 已提交
286 287
## VibratorStopMode

W
wuzhihuitmac 已提交
288
马达要停止指定的振动模式。
Z
zengyawen 已提交
289

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

W
wuzhihuitmac 已提交
292 293 294 295
| 名称                      | 默认值   | 说明                                                         |
| ------------------------- | -------- | ------------------------------------------------------------ |
| VIBRATOR_STOP_MODE_TIME   | "time"   | 停止模式为duration模式的振动。即触发振动时参数类型为number,参数本身为振动持续时间的触发方式。 |
| VIBRATOR_STOP_MODE_PRESET | "preset" | 停止模式为预置EffectId的振动。即触发振动时参数类型为EffectId,参数本身为马达振动效果的字符串的触发方式。 |
W
wuzhihuitmac 已提交
296

W
wuzhihuitmac 已提交
297 298 299 300 301 302 303
## VibrateEffect

| 名称          | 类型   | 说明               |
| ------------- | ------ | ------------------ |
| VibrateTime   | string | 马达振动时长。     |
| VibratePreset | string | 马达预置振动类型。 |

W
wuzhihuitmac 已提交
304 305
## VibrateTime

W
wuzhihuitmac 已提交
306
马达振动时长。
W
wuzhihuitmac 已提交
307

W
wuzhihuitmac 已提交
308 309 310 311
| 名称     | 默认值 | 说明                           |
| -------- | ------ | ------------------------------ |
| type     | "time" | 按照指定持续时间触发马达振动。 |
| duration |        | 马达振动时长, 单位ms。         |
W
wuzhihuitmac 已提交
312 313 314

## VibratePreset

W
wuzhihuitmac 已提交
315
马达预置振动类型。
W
wuzhihuitmac 已提交
316

W
wuzhihuitmac 已提交
317 318 319 320 321
| 名称     | 默认值   | 说明                           |
| -------- | -------- | ------------------------------ |
| type     | "preset" | 按照预置振动效果触发马达振动。 |
| effectId |          | 预置的振动效果ID。             |
| count    |          | 重复振动的次数。               |
W
wuzhihuitmac 已提交
322 323 324

## VibrateAttribute

W
wuzhihuitmac 已提交
325 326 327 328 329 330 331 332 333
马达振动属性。

| 名称  | 默认值 | 说明           |
| ----- | ------ | -------------- |
| id    | 0      | 振动器id。     |
| usage |        | 马达振动场景。 |

## Usage

W
wuzhihuitmac 已提交
334 335 336 337 338 339 340 341 342 343 344 345 346
振动使用场景。

| 名称             | 类型   | 说明                           |
| ---------------- | ------ | ------------------------------ |
| unknown          | string | 没有明确使用场景,最低优先级。 |
| alarm            | string | 用于警报振动的场景。           |
| ring             | string | 用于铃声振动的场景。           |
| notification     | string | 用于通知振动的场景。           |
| communication    | string | 用于通信振动的场景。           |
| touch            | string | 用于触摸振动的场景。           |
| media            | string | 用于多媒体振动的场景。         |
| physicalFeedback | string | 用于物理反馈振动的场景。       |
| simulateReality  | string | 用于模拟现实振动的场景。       |
W
wuzhihuitmac 已提交
347