js-apis-device-manager.md 50.8 KB
Newer Older
1
# @ohos.distributedHardware.deviceManager (设备管理)
Z
zengyawen 已提交
2

3 4 5 6 7 8 9 10 11
本模块提供分布式设备管理能力。

系统应用可调用接口实现如下功能:

- 注册和解除注册设备上下线变化监听
- 发现周边不可信设备
- 认证和取消认证设备
- 查询可信设备列表
- 查询本地设备信息,包括设备名称,设备类型和设备标识
S
summer8999 已提交
12
- 发布设备发现
S
summer8999 已提交
13

14 15
> **说明:**
>
16 17
> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口为系统接口,三方应用不支持调用。
Z
zengyawen 已提交
18

Z
zengyawen 已提交
19 20

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

22
```js
Z
zengyawen 已提交
23 24 25 26
import deviceManager from '@ohos.distributedHardware.deviceManager';
```


Z
zengyawen 已提交
27 28 29
## deviceManager.createDeviceManager

createDeviceManager(bundleName: string, callback: AsyncCallback<DeviceManager>): void
Z
zengyawen 已提交
30 31

创建一个设备管理器实例。
32 33 34

**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
35
**参数:**
@
@shi-xiaoxiao-iris 已提交
36

37 38 39 40
| 参数名     | 类型                                                 | 必填 | 说明                                                        |
| ---------- | ---------------------------------------------------- | ---- | ----------------------------------------------------------- |
| bundleName | string                                               | 是   | 指示应用程序的Bundle名称。                                  |
| callback   | AsyncCallback<[DeviceManager](#devicemanager)> | 是   | DeviceManager实例创建时调用的回调,返回设备管理器对象实例。 |
Z
zengyawen 已提交
41

@
@shi-xiaoxiao-iris 已提交
42
**示例:**
@
@shi-xiaoxiao-iris 已提交
43

44 45 46
  ```js
  try {
    deviceManager.createDeviceManager("ohos.samples.jshelloworld", (err, data) => {
Z
zengyawen 已提交
47
      if (err) { 
48
        console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
49
        return;
Z
zengyawen 已提交
50 51
      }
      console.info("createDeviceManager success");
H
HelloCrease 已提交
52
      let dmInstance = data;
53 54
    });
  } catch(err) {
55
    console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
56
  }
Z
zengyawen 已提交
57 58
  ```

59
## DeviceInfo
Z
zengyawen 已提交
60

61
设备信息。
Z
zengyawen 已提交
62

63 64
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
65
| 名称                     | 类型                        | 必填   | 说明       |
H
HelloCrease 已提交
66 67 68 69 70
| ---------------------- | ------------------------- | ---- | -------- |
| deviceId               | string                    | 是    | 设备的唯一标识。 |
| deviceName             | string                    | 是    | 设备名称。    |
| deviceType             | [DeviceType](#devicetype) | 是    | 设备类型。    |
| networkId<sup>8+</sup> | string                    | 是    | 设备网络标识。  |
S
summer8999 已提交
71
| range<sup>9+</sup>     | number                    | 是    | 发现设备的距离。  |
W
wangxuanxuan 已提交
72
| authForm<sup>10+</sup> | [AuthForm](#authform)     | 是    | 设备认证类型  |
Z
zengyawen 已提交
73 74

## DeviceType
Z
zengyawen 已提交
75 76 77

表示设备类型的枚举类。

78 79
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
80
| 名称           | 值  | 说明   |
H
HelloCrease 已提交
81 82 83 84 85 86 87 88
| ------------ | ---- | ---- |
| SPEAKER      | 0x0A | 智能音箱 |
| PHONE        | 0x0E | 手机   |
| TABLET       | 0x11 | 平板   |
| WEARABLE     | 0x6D | 智能穿戴 |
| TV           | 0x9C | 智慧屏  |
| CAR          | 0x83 | 车    |
| UNKNOWN_TYPE | 0    | 未知设备 |
89

W
wuqi0105 已提交
90
## AuthForm<sup>10+</sup>
W
wangxuanxuan 已提交
91 92 93 94 95 96 97 98 99 100 101

表示设备认证类型的枚举类。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

| 名称                 | 值  | 说明             |
| ------------------- | ---- | --------------- |
| INVALID_TYPE        | -1   | 设备没有认证 |
| PEER_TO_PEER        | 0    | 无账号设备点对点认证   |
| IDENTICAL_ACCOUNT   | 1    | 设备同账号认证   |
| ACROSS_ACCOUNT      | 2    | 设备跨账号认证 |
Z
zengyawen 已提交
102

103
## DeviceStateChangeAction
Z
zengyawen 已提交
104

105 106 107 108
表示设备状态变化的枚举。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
109
| 名称      | 值  | 说明              |
H
HelloCrease 已提交
110
| ------- | ---- | --------------- |
S
summer8999 已提交
111 112 113
| ONLINE  | 0    | 设备物理上线状态。           |
| READY   | 1    | 设备可用状态,表示设备间信息已在分布式数据中同步完成, 可以运行分布式业务。 |
| OFFLINE | 2    | 设备物理下线状态。           |
H
HelloCrease 已提交
114
| CHANGE  | 3    | 设备信息更改。         |
115 116 117 118

## SubscribeInfo

发现信息。
Z
zengyawen 已提交
119

120 121
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
122
| 名称            | 类型                                | 必填   | 说明                |
H
HelloCrease 已提交
123 124
| ------------- | --------------------------------- | ---- | ----------------- |
| subscribeId   | number                            | 是    | 发现标识,用于标识不同的发现周期。 |
W
wuqi0105 已提交
125 126 127 128 129 130
| mode          | [DiscoverMode ](#discovermode)    | 是    | 发现模式。             |
| medium        | [ExchangeMedium](#exchangemedium) | 是    | 发现类型。             |
| freq          | [ExchangeFreq](#exchangefreq)     | 是    | 发现频率。             |
| isSameAccount | boolean                           | 是    | 是否同帐号。            |
| isWakeRemote  | boolean                           | 是    | 是否唤醒设备。           |
| capability    | [SubscribeCap](#subscribecap)     | 是    | 发现能力。             |
131 132 133 134 135 136 137 138


## DiscoverMode 

表示发现模式的枚举。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
139
| 名称                    | 值  | 说明    |
H
HelloCrease 已提交
140
| --------------------- | ---- | ----- |
141
| DISCOVER_MODE_PASSIVE | 0x55 | 被动模式。 |
H
HelloCrease 已提交
142
| DISCOVER_MODE_ACTIVE  | 0xAA | 主动模式。 |
143 144 145 146 147 148 149 150


## ExchangeMedium 

表示发现类型的枚举。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
151
| 名称   | 值  | 说明        |
H
HelloCrease 已提交
152 153 154 155 156
| ---- | ---- | --------- |
| AUTO | 0    | 自动发现类型。   |
| BLE  | 1    | 蓝牙发现类型。   |
| COAP | 2    | WiFi发现类型。 |
| USB  | 3    | USB发现类型。  |
157 158 159 160 161 162 163

## ExchangeFreq 

表示发现频率的枚举。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
164
| 名称         | 值  | 说明    |
H
HelloCrease 已提交
165 166 167 168 169
| ---------- | ---- | ----- |
| LOW        | 0    | 低频率。  |
| MID        | 1    | 中频率。  |
| HIGH       | 2    | 高频率。  |
| SUPER_HIGH | 3    | 超高频率。 |
170 171 172 173 174 175 176 177


## SubscribeCap 

表示发现能力的枚举。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
178
| 名称                        | 值  | 说明             |
H
HelloCrease 已提交
179 180 181
| ------------------------- | ---- | -------------- |
| SUBSCRIBE_CAPABILITY_DDMP | 0    | DDMP能力,后续会被废弃。 |
| SUBSCRIBE_CAPABILITY_OSD  | 1    | OSD能力。         |
182 183 184 185 186 187 188 189


## AuthParam

认证参数。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
190
| 名称        | 类型                   | 必填   | 说明         |
H
HelloCrease 已提交
191 192
| --------- | -------------------- | ---- | ---------- |
| authType  | number               | 是    | 认证类型。      |
W
wangxuanxuan 已提交
193
| extraInfo | {[key:string]&nbsp;:&nbsp;any} | 否    | 认证参数可扩展字段。可选,默认为undefined。 |
194 195 196 197 198 199 200

## AuthInfo

认证信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
201
| 名称        | 类型                   | 必填   | 说明         |
H
HelloCrease 已提交
202 203 204
| --------- | -------------------- | ---- | ---------- |
| authType  | number               | 是    | 认证类型。      |
| token     | number               | 是    | 认证Token。   |
W
wangxuanxuan 已提交
205
| extraInfo | {[key:string]&nbsp;:&nbsp;any} | 否    | 认证信息可扩展字段。可选,默认为undefined。 |
Z
zengyawen 已提交
206

@
@shi-xiaoxiao-iris 已提交
207
## PublishInfo<sup>9+</sup>
S
summer8999 已提交
208 209 210 211 212

发布设备参数

**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
213
| 名称          | 类型                              | 必填   | 说明                |
S
summer8999 已提交
214 215 216 217 218
| ------------- | --------------------------------- | ---- | ----------------- |
| publishId     | number                            | 是    | 发布设备标识,用于标识不同的发布周期。 |
| mode          | [DiscoverMode ](#discovermode)    | 是    | 发现模式。             |
| freq          | [ExchangeFreq](#exchangefreq)     | 是    | 发现频率。             |
| ranging       | boolean                           | 是    | 发布的设备是否支持测距能力。             |
Z
zengyawen 已提交
219 220

## DeviceManager
Z
zengyawen 已提交
221 222 223

设备管理实例,用于获取可信设备和本地设备的相关信息。在调用DeviceManager的方法前,需要先通过createDeviceManager构建一个DeviceManager实例dmInstance。

Z
zengyawen 已提交
224
### release
Z
zengyawen 已提交
225

Z
zengyawen 已提交
226
release(): void
Z
zengyawen 已提交
227

Z
zengyawen 已提交
228
设备管理实例不再使用后,通过该方法释放DeviceManager实例。
Z
zengyawen 已提交
229

史晓晓 已提交
230
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
231

232 233
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
234
**错误码:**
@
@shi-xiaoxiao-iris 已提交
235

@
@shi-xiaoxiao-iris 已提交
236
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
237

@
@shi-xiaoxiao-iris 已提交
238
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
239 240
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
241

@
@shi-xiaoxiao-iris 已提交
242
**示例:**
@
@shi-xiaoxiao-iris 已提交
243

244
  ```js
245 246 247
  try {
    dmInstance.release();
  } catch (err) {
248
    console.error("release errCode:" + err.code + ",errMessage:" + err.message);
249
  }
Z
zengyawen 已提交
250
  ```
Z
zengyawen 已提交
251

Z
zengyawen 已提交
252
### getTrustedDeviceListSync
Z
zengyawen 已提交
253

Z
zengyawen 已提交
254
getTrustedDeviceListSync(): Array&lt;DeviceInfo&gt;
Z
zengyawen 已提交
255 256 257

同步获取所有可信设备列表。

史晓晓 已提交
258
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
259

260 261
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
262
**返回值:**
@
@shi-xiaoxiao-iris 已提交
263

H
HelloCrease 已提交
264 265
  | 名称                                     | 说明        |
  | -------------------------------------- | --------- |
Z
zengyawen 已提交
266 267
  | Array&lt;[DeviceInfo](#deviceinfo)&gt; | 返回可信设备列表。 |

@
@shi-xiaoxiao-iris 已提交
268
**错误码:**
@
@shi-xiaoxiao-iris 已提交
269

@
@shi-xiaoxiao-iris 已提交
270
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
271

@
@shi-xiaoxiao-iris 已提交
272
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
273 274
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
275

@
@shi-xiaoxiao-iris 已提交
276
**示例:**
@
@shi-xiaoxiao-iris 已提交
277

278
  ```js
279 280 281
  try {
    var deviceInfoList = dmInstance.getTrustedDeviceListSync();
  } catch (err) {
282
    console.error("getTrustedDeviceListSync errCode:" + err.code + ",errMessage:" + err.message);
283
  }
Z
zengyawen 已提交
284
  ```
Z
zengyawen 已提交
285

W
wuxiaodong02 已提交
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325
### getTrustedDeviceListSync<sup>10+</sup>

getTrustedDeviceListSync(isRefresh: boolean): Array&lt;DeviceInfo&gt;

打开软总线系统端的心跳模式,让周围处于下线状态的可信设备快速上线,同时刷新已上线的可信设备列表。

**需要权限**:ohos.permission.ACCESS_SERVICE_DM

**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

| 参数名        | 类型                               | 必填 | 说明                                |
| ------------- | --------------------------------- | ---- | ---------------------------------- |
|   isRefresh   | boolean                           | 是   | 是否打开心跳模式,刷新可信列表。      |

**返回值:**

| 名称                                     | 说明            |
| -------------------------------------- | ---------------- |
| Array&lt;[DeviceInfo](#deviceinfo)&gt; | 返回可信设备列表。 |

**错误码:**

以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)

| 错误码ID | 错误信息                                                         |
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |

**示例:**

  ```js
  try {
    var deviceInfoList = dmInstance.getTrustedDeviceListSync(true);
  } catch (err) {
    console.error("getTrustedDeviceListSync errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

326 327 328 329 330 331
### getTrustedDeviceList<sup>8+</sup>

getTrustedDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceInfo&gt;&gt;): void

获取所有可信设备列表。使用callback异步回调。

史晓晓 已提交
332
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
333

334 335
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
336
**参数:**
@
@shi-xiaoxiao-iris 已提交
337

@
@shi-xiaoxiao-iris 已提交
338
  | 参数名       | 类型                                     | 必填   | 说明                    |
H
HelloCrease 已提交
339 340
  | -------- | ---------------------------------------- | ---- | --------------------- |
  | callback | AsyncCallback&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | 是    | 获取所有可信设备列表的回调,返回设备信息。 |
341

@
@shi-xiaoxiao-iris 已提交
342
**示例:**
@
@shi-xiaoxiao-iris 已提交
343

344
  ```js
345 346 347
  try {
    dmInstance.getTrustedDeviceList((err, data) => {
      if (err) {
348
        console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
349 350
        return;
      }
351
      console.log('get trusted device info: ' + JSON.stringify(data));
352
    });
353
  } catch (err) {
354
    console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
355
  }
356 357 358 359 360 361 362 363
  ```

### getTrustedDeviceList<sup>8+</sup>

getTrustedDeviceList(): Promise&lt;Array&lt;DeviceInfo&gt;&gt;

获取所有可信设备列表。使用Promise异步回调。

史晓晓 已提交
364
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
365

366 367
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
368
**返回值:**
@
@shi-xiaoxiao-iris 已提交
369

H
HelloCrease 已提交
370 371
  | 类型                                       | 说明                    |
  | ---------------------------------------- | --------------------- |
372 373
  | Promise&lt;Array&lt;[DeviceInfo](#deviceinfo)&gt;&gt; | Promise实例,用于获取异步返回结果。 |

@
@shi-xiaoxiao-iris 已提交
374
**错误码:**
@
@shi-xiaoxiao-iris 已提交
375

@
@shi-xiaoxiao-iris 已提交
376
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
377

@
@shi-xiaoxiao-iris 已提交
378
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
379 380
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
381

@
@shi-xiaoxiao-iris 已提交
382
**示例:**
@
@shi-xiaoxiao-iris 已提交
383

384
  ```js
385 386 387
  dmInstance.getTrustedDeviceList().then((data) => {
    console.log('get trusted device info: ' + JSON.stringify(data));
    }).catch((err) => {
388
      console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
389
  });
390 391 392 393 394 395 396 397
  ```

### getLocalDeviceInfoSync<sup>8+</sup>

getLocalDeviceInfoSync(): [DeviceInfo](#deviceinfo)

同步获取本地设备信息。

史晓晓 已提交
398
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
399

400 401
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
402
**返回值:**
@
@shi-xiaoxiao-iris 已提交
403

404 405 406
  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | [DeviceInfo](#deviceinfo) | 返回本地设备列表。 |
407

@
@shi-xiaoxiao-iris 已提交
408
**错误码:**
@
@shi-xiaoxiao-iris 已提交
409

@
@shi-xiaoxiao-iris 已提交
410
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
411

@
@shi-xiaoxiao-iris 已提交
412
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
413 414
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
415

@
@shi-xiaoxiao-iris 已提交
416
**示例:**
@
@shi-xiaoxiao-iris 已提交
417

418
  ```js
419 420 421
  try {
    var deviceInfo = dmInstance.getLocalDeviceInfoSync();
  } catch (err) {
422
    console.error("getLocalDeviceInfoSync errCode:" + err.code + ",errMessage:" + err.message);
423
  }
424 425 426 427 428 429 430 431
  ```

### getLocalDeviceInfo<sup>8+</sup>

getLocalDeviceInfo(callback:AsyncCallback&lt;DeviceInfo&gt;): void

获取本地设备信息。使用callback异步回调。

史晓晓 已提交
432
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
433

434 435
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
436
**参数:**
@
@shi-xiaoxiao-iris 已提交
437

@
@shi-xiaoxiao-iris 已提交
438
  | 参数名       | 类型                                     | 必填   | 说明        |
H
HelloCrease 已提交
439 440
  | -------- | ---------------------------------------- | ---- | --------- |
  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | 是    | 获取本地设备信息。 |
441

@
@shi-xiaoxiao-iris 已提交
442
**示例:**
@
@shi-xiaoxiao-iris 已提交
443

444
  ```js
445
  try {
446
    dmInstance.getLocalDeviceInfo((err, data) => {
447
    if (err) {
448
      console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
449
      return;
450
    }
451 452 453
      console.log('get local device info: ' + JSON.stringify(data));
    });
  } catch (err) {
454
    console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
455
  }
456 457 458 459 460 461 462 463
  ```

### getLocalDeviceInfo<sup>8+</sup>

getLocalDeviceInfo(): Promise&lt;DeviceInfo&gt;

获取本地设备信息。使用Promise异步回调。

史晓晓 已提交
464
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
465

466 467
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
468 469
**返回值:**

H
HelloCrease 已提交
470 471
  | 类型                                       | 说明                    |
  | ---------------------------------------- | --------------------- |
472 473
  | Promise&lt;[DeviceInfo](#deviceinfo)&gt; | Promise实例,用于获取异步返回结果。 |

@
@shi-xiaoxiao-iris 已提交
474
**错误码:**
@
@shi-xiaoxiao-iris 已提交
475

@
@shi-xiaoxiao-iris 已提交
476
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
477

@
@shi-xiaoxiao-iris 已提交
478
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
479 480 481
| ------- | --------------------------------------------------------------- |
| 11600101| Failed to execute the function.                                 |

@
@shi-xiaoxiao-iris 已提交
482
**示例:**
@
@shi-xiaoxiao-iris 已提交
483

484
  ```js
485 486 487
  dmInstance.getLocalDeviceInfo().then((data) => {
    console.log('get local device info: ' + JSON.stringify(data));
  }).catch((err) => {
488
    console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
489
  });
490 491
  ```

S
summer8999 已提交
492 493
### getDeviceInfo<sup>10+</sup>

S
summer8999 已提交
494
getDeviceInfo(networkId: string, callback:AsyncCallback&lt;DeviceInfo&gt;): void
S
summer8999 已提交
495

S
summer8999 已提交
496
通过指定设备的网络标识获取该设备的信息。使用callback异步回调。
S
summer8999 已提交
497

史晓晓 已提交
498
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
499

S
summer8999 已提交
500 501 502 503 504 505
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明        |
  | -------- | ---------------------------------------- | ---- | --------- |
S
summer8999 已提交
506
  | networkId| string                                   | 是   | 设备的网络标识。 |
S
summer8999 已提交
507 508 509 510 511 512
  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | 是    | 获取指定设备信息。 |

**示例:**

  ```js
  try {
W
wangxuanxuan 已提交
513 514
    // 设备网络标识,可以从可信设备列表中获取
    let networkId = "xxxxxxx"
S
summer8999 已提交
515 516 517 518 519 520 521 522 523 524 525 526 527 528
    dmInstance.getDeviceInfo(networkId, (err, data) => {
    if (err) {
      console.error("getDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
      return;
    }
      console.log('get device info: ' + JSON.stringify(data));
    });
  } catch (err) {
    console.error("getDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

### getDeviceInfo<sup>10+</sup>

S
summer8999 已提交
529
getDeviceInfo(networkId: string): Promise&lt;DeviceInfo&gt;
S
summer8999 已提交
530

S
summer8999 已提交
531
通过指定设备的网络标识获取该设备的信息。使用Promise异步回调。
S
summer8999 已提交
532

史晓晓 已提交
533
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
534

S
summer8999 已提交
535 536
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

S
summer8999 已提交
537 538 539 540 541 542
**参数:**

  | 参数名   | 类型                                     | 必填 | 说明        |
  | -------- | ---------------------------------------- | ---- | --------- |
  | networkId| string                                   | 是   | 设备的网络标识。 |
  
S
summer8999 已提交
543 544 545 546 547 548 549 550 551
**返回值:**

  | 类型                                       | 说明                    |
  | ---------------------------------------- | --------------------- |
  | Promise&lt;[DeviceInfo](#deviceinfo)&gt; | Promise实例,用于获取异步返回结果。 |

**示例:**

  ```js
W
wangxuanxuan 已提交
552 553
  // 设备网络标识,可以从可信设备列表中获取
  let networkId = "xxxxxxx"
S
summer8999 已提交
554 555 556 557 558 559 560
  dmInstance.getDeviceInfo(networkId).then((data) => {
    console.log('get device info: ' + JSON.stringify(data));
  }).catch((err) => {
    console.error("getDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
  });
  ```

@
@shi-xiaoxiao-iris 已提交
561
### startDeviceDiscovery<sup>8+</sup>
562 563 564

startDeviceDiscovery(subscribeInfo: SubscribeInfo): void

W
wangxuanxuan 已提交
565
发现周边设备。发现状态持续两分钟,超过两分钟,会停止发现,最大发现数量99个。
566

史晓晓 已提交
567
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
568

569 570
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
571
**参数:**
@
@shi-xiaoxiao-iris 已提交
572

@
@shi-xiaoxiao-iris 已提交
573
  | 参数名            | 类型                       | 必填 | 说明    |
H
HelloCrease 已提交
574
  | ------------- | ------------------------------- | ---- | ----- |
575
  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是   | 发现信息。|
576

@
@shi-xiaoxiao-iris 已提交
577
**错误码:**
@
@shi-xiaoxiao-iris 已提交
578

@
@shi-xiaoxiao-iris 已提交
579
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
580

@
@shi-xiaoxiao-iris 已提交
581
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
582 583 584 585
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600104 | Discovery invalid.                                              |

@
@shi-xiaoxiao-iris 已提交
586
**示例:**
@
@shi-xiaoxiao-iris 已提交
587

588
  ```js
589
  // 生成发现标识,随机数确保每次调用发现接口的标识不一致
590 591 592
  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
  var subscribeInfo = {
      "subscribeId": subscribeId,
593 594 595
      "mode": 0xAA, // 主动模式
      "medium": 0,  // 自动发现类型,同时支持多种发现类型
      "freq": 2,    // 高频率
596 597 598 599
      "isSameAccount": false,
      "isWakeRemote": false,
      "capability": 1
  };
600 601 602
  try {
    dmInstance.startDeviceDiscovery(subscribeInfo); // 当有设备发现时,通过deviceFound回调通知给应用程序
  } catch (err) {
603
    console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
604
  }
605 606
  ```

@
@shi-xiaoxiao-iris 已提交
607
### startDeviceDiscovery<sup>9+</sup>
S
summer8999 已提交
608

S
summer8999 已提交
609
startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void
S
summer8999 已提交
610

W
wangxuanxuan 已提交
611
发现周边设备。发现状态持续两分钟,超过两分钟,会停止发现,最大发现数量99个。
S
summer8999 已提交
612

史晓晓 已提交
613
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
614

S
summer8999 已提交
615 616
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
617
**参数:**
@
@shi-xiaoxiao-iris 已提交
618

@
@shi-xiaoxiao-iris 已提交
619
  | 参数名            | 类型                       | 必填   | 说明    |
620
  | ------------- | ------------------------------- | ---- | -----  |
S
summer8999 已提交
621
  | subscribeInfo | [SubscribeInfo](#subscribeinfo) | 是   | 发现信息。 |
W
wangxuanxuan 已提交
622
  | filterOptions | string                          | 否   | 发现设备过滤信息。可选,默认为undefined,发现未上线设备。|
S
summer8999 已提交
623

@
@shi-xiaoxiao-iris 已提交
624
**错误码:**
@
@shi-xiaoxiao-iris 已提交
625

@
@shi-xiaoxiao-iris 已提交
626
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
627

@
@shi-xiaoxiao-iris 已提交
628
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
629 630 631 632
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600104 | Discovery invalid.                                              |

@
@shi-xiaoxiao-iris 已提交
633
**示例:**
@
@shi-xiaoxiao-iris 已提交
634

S
summer8999 已提交
635
  ```js
636
  // 生成发现标识,随机数确保每次调用发现接口的标识不一致
S
summer8999 已提交
637 638 639
  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
  var subscribeInfo = {
      "subscribeId": subscribeId,
640 641 642
      "mode": 0xAA, // 主动模式
      "medium": 0,  // 自动发现类型,同时支持多种发现类型
      "freq": 2,    // 高频率
S
summer8999 已提交
643 644 645 646 647
      "isSameAccount": false,
      "isWakeRemote": false,
      "capability": 1
  };
  var filterOptions = {
S
summer8999 已提交
648
    "filter_op": "OR", // 可选, 默认"OR"
S
summer8999 已提交
649 650 651
    "filters": [
        {
            "type": "range",
S
summer8999 已提交
652
            "value": 50 // 需过滤发现设备的距离,单位(cm)
S
summer8999 已提交
653 654
        }
    ]
S
summer8999 已提交
655
  };
656 657 658
  try {
    dmInstance.startDeviceDiscovery(subscribeInfo, JSON.stringify(filterOptions)); // 当有设备发现时,通过deviceFound回调通知给应用程序
  } catch (err) {
659
    console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
660
  }
S
summer8999 已提交
661
  ```
@
@shi-xiaoxiao-iris 已提交
662

663 664 665 666 667 668
### stopDeviceDiscovery

stopDeviceDiscovery(subscribeId: number): void

停止发现周边设备。

史晓晓 已提交
669
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
670

671 672
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
673
**参数:**
@
@shi-xiaoxiao-iris 已提交
674

@
@shi-xiaoxiao-iris 已提交
675
  | 参数名          | 类型   | 必填   | 说明    |
H
HelloCrease 已提交
676 677
  | ----------- | ------ | ---- | ----- |
  | subscribeId | number | 是    | 发现标识。 |
678

@
@shi-xiaoxiao-iris 已提交
679
**错误码:**
@
@shi-xiaoxiao-iris 已提交
680

@
@shi-xiaoxiao-iris 已提交
681
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
682

@
@shi-xiaoxiao-iris 已提交
683
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
684 685
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
686

@
@shi-xiaoxiao-iris 已提交
687
**示例:**
@
@shi-xiaoxiao-iris 已提交
688

689
  ```js
690
  try {
691 692
    // stopDeviceDiscovery和startDeviceDiscovery需配对使用,入参需要和startDeviceDiscovery接口传入的subscribeId值相等
    var subscribeId = 12345;
693 694
    dmInstance.stopDeviceDiscovery(subscribeId);
  } catch (err) {
695
    console.error("stopDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
696
  }
697 698
  ```

@
@shi-xiaoxiao-iris 已提交
699
### publishDeviceDiscovery<sup>9+</sup>
S
summer8999 已提交
700

S
summer8999 已提交
701
publishDeviceDiscovery(publishInfo: PublishInfo): void
S
summer8999 已提交
702

W
wangxuanxuan 已提交
703
发布设备发现。发布状态持续两分钟,超过两分钟会停止发布。
S
summer8999 已提交
704

史晓晓 已提交
705
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
706

S
summer8999 已提交
707 708
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
709
**参数:**
@
@shi-xiaoxiao-iris 已提交
710

@
@shi-xiaoxiao-iris 已提交
711
  | 参数名          | 类型                        | 必填 | 说明    |
S
summer8999 已提交
712 713 714
  | ------------- | ------------------------------- | ---- | ----- |
  | publishInfo   | [PublishInfo](#publishinfo)     | 是   | 发布设备发现信息。 |

@
@shi-xiaoxiao-iris 已提交
715
**错误码:**
@
@shi-xiaoxiao-iris 已提交
716

@
@shi-xiaoxiao-iris 已提交
717
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
718

@
@shi-xiaoxiao-iris 已提交
719
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
720 721 722
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600105 | Publish invalid.                                                |
@
@shi-xiaoxiao-iris 已提交
723

@
@shi-xiaoxiao-iris 已提交
724
**示例:**
@
@shi-xiaoxiao-iris 已提交
725

S
summer8999 已提交
726
  ```js
727
  // 生成发布标识,随机数确保每次调用发布接口的标识不一致
S
summer8999 已提交
728
  var publishId = Math.floor(Math.random() * 10000 + 1000);
S
summer8999 已提交
729
  var publishInfo = {
S
summer8999 已提交
730
      "publishId": publishId,
731 732
      "mode": 0xAA, // 主动模式
      "freq": 2,    // 高频率
733
      "ranging": true  // 支持发现时测距
S
summer8999 已提交
734
  };
735 736 737
  try {
    dmInstance.publishDeviceDiscovery(publishInfo); // 当有发布结果时,通过回调通知给应用程序
  } catch (err) {
738
    console.error("publishDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
739
  }
S
summer8999 已提交
740
  ```
741

@
@shi-xiaoxiao-iris 已提交
742
### unPublishDeviceDiscovery<sup>9+</sup>
S
summer8999 已提交
743

S
summer8999 已提交
744
unPublishDeviceDiscovery(publishId: number): void
S
summer8999 已提交
745 746 747

停止发布设备发现。

史晓晓 已提交
748
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
749

S
summer8999 已提交
750 751
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
752
**参数:**
@
@shi-xiaoxiao-iris 已提交
753

@
@shi-xiaoxiao-iris 已提交
754
  | 参数名        | 类型 | 必填 | 说明  |
S
summer8999 已提交
755 756
  | ----------- | -------- | ---- | ----- |
  | publishId   | number   | 是   | 发布标识。 |
S
summer8999 已提交
757

@
@shi-xiaoxiao-iris 已提交
758
**错误码:**
@
@shi-xiaoxiao-iris 已提交
759

@
@shi-xiaoxiao-iris 已提交
760
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
761

@
@shi-xiaoxiao-iris 已提交
762
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
763 764
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
765

@
@shi-xiaoxiao-iris 已提交
766
**示例:**
@
@shi-xiaoxiao-iris 已提交
767

S
summer8999 已提交
768
  ```js
769
  try {
770 771
    // unPublishDeviceDiscovery和publishDeviceDiscovery配对使用,入参需要和publishDeviceDiscovery接口传入的publishId值相等
    var publishId = 12345;
772
    dmInstance.unPublishDeviceDiscovery(publishId);
773
  } catch (err) {
774
    console.error("unPublishDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
775
  }
S
summer8999 已提交
776 777
  ```

778 779
### authenticateDevice

780
authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback&lt;{deviceId: string, pinToken ?: number}&gt;): void
781 782 783

认证设备。

史晓晓 已提交
784
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
785

786 787
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
788
**参数:**
@
@shi-xiaoxiao-iris 已提交
789

@
@shi-xiaoxiao-iris 已提交
790
  | 参数名         | 类型                                     | 必填   | 说明      |
H
HelloCrease 已提交
791 792 793
  | ---------- | ---------------------------------------- | ---- | ------- |
  | deviceInfo | [DeviceInfo](#deviceinfo)                | 是    | 设备信息。   |
  | authParam  | [AuthParam](#authparam)                  | 是    | 认证参数。   |
794
  | callback   | AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;pinToken&nbsp;?:&nbsp;number}&gt; | 是    | 认证结果回调。 |
795

@
@shi-xiaoxiao-iris 已提交
796
**示例:**
@
@shi-xiaoxiao-iris 已提交
797

798
  ```js
799
  // 认证的设备信息,可以从发现的结果中获取
800 801 802
  var deviceInfo ={
      "deviceId": "XXXXXXXX",
      "deviceName": "",
803 804 805
      "deviceType": 0x0E,
      "networkId" : "xxxxxxx",
      "range" : 0
806
  };
807 808 809 810 811
  let extraInfo = {
          'targetPkgName': 'ohos.samples.xxx',
          'appName': 'xxx',
          'appDescription': 'xxx',
          'business': '0'
812
  }
813
  let authParam = {
814 815
      'authType': 1,// 认证类型: 1 - 无帐号PIN码认证
      'extraInfo': extraInfo
816
  }
817 818
  try {
    dmInstance.authenticateDevice(deviceInfo, authParam, (err, data) => {
819
      if (err) {
820
          console.error("authenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
821 822
          return;
      }
@
@shi-xiaoxiao-iris 已提交
823 824
      console.info("authenticateDevice result:" + JSON.stringify(data));
      let token = data.pinToken;
825 826
    });
  } catch (err) {
827
    console.error("authenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
828
  }
829 830 831 832 833 834 835 836
  ```

### unAuthenticateDevice<sup>8+</sup>

unAuthenticateDevice(deviceInfo: DeviceInfo): void

解除认证设备。

史晓晓 已提交
837
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
838

839 840
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
841
**参数:**
@
@shi-xiaoxiao-iris 已提交
842

@
@shi-xiaoxiao-iris 已提交
843
  | 参数名         | 类型                      | 必填   | 说明    |
H
HelloCrease 已提交
844 845
  | ---------- | ------------------------- | ---- | ----- |
  | deviceInfo | [DeviceInfo](#deviceinfo) | 是    | 设备信息。 |
846

@
@shi-xiaoxiao-iris 已提交
847
**错误码:**
@
@shi-xiaoxiao-iris 已提交
848

@
@shi-xiaoxiao-iris 已提交
849
以下的错误码的详细介绍请参见[设备管理错误码](../errorcodes/errorcode-device-manager.md)
@
@shi-xiaoxiao-iris 已提交
850

@
@shi-xiaoxiao-iris 已提交
851
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
852 853
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
854

@
@shi-xiaoxiao-iris 已提交
855
**示例:**
@
@shi-xiaoxiao-iris 已提交
856

857
  ```js
858
  try {
859 860 861 862 863 864 865
    var deviceInfo ={
      "deviceId": "XXXXXXXX",
      "deviceName": "",
      "deviceType": 0x0E,
      "networkId" : "xxxxxxx",
      "range" : 0
    };
866 867
    dmInstance.unAuthenticateDevice(deviceInfo);
  } catch (err) {
868
    console.error("unAuthenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
869
  }
870 871 872 873
  ```

### verifyAuthInfo

874
verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback&lt;{deviceId: string, level: number}&gt;): void
875 876 877

验证认证信息。

史晓晓 已提交
878
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
879

880 881
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
882
**参数:**
@
@shi-xiaoxiao-iris 已提交
883

@
@shi-xiaoxiao-iris 已提交
884
  | 参数名       | 类型                                     | 必填   | 说明      |
H
HelloCrease 已提交
885 886
  | -------- | ---------------------------------------- | ---- | ------- |
  | authInfo | [AuthInfo](#authinfo)                    | 是    | 认证信息。   |
887
  | callback | AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;level:&nbsp;number}&gt; | 是    | 验证结果回调。 |
888

@
@shi-xiaoxiao-iris 已提交
889
**示例:**
@
@shi-xiaoxiao-iris 已提交
890

891 892 893
  ```js
  let authInfo = {
    "authType": 1,
894
    "token": 123456,
895 896
    "extraInfo": {}
  }
897 898
  try {
    dmInstance.verifyAuthInfo(authInfo, (err, data) => {
899
    if (err) {
900
        console.error("verifyAuthInfo errCode:" + err.code + ",errMessage:" + err.message);
901 902
        return;
    }
@
@shi-xiaoxiao-iris 已提交
903
    console.info("verifyAuthInfo result:" + JSON.stringify(data));
904 905
    });
  } catch (err) {
906
    console.error("verifyAuthInfo errCode:" + err.code + ",errMessage:" + err.message);
907
  }
908 909
  ```

@
@shi-xiaoxiao-iris 已提交
910
### setUserOperation<sup>9+</sup>
@
@shi-xiaoxiao-iris 已提交
911 912 913 914 915

setUserOperation(operateAction: number, params: string): void;

设置用户ui操作行为。

史晓晓 已提交
916
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
917

@
@shi-xiaoxiao-iris 已提交
918 919
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
920
**参数:**
@
@shi-xiaoxiao-iris 已提交
921

@
@shi-xiaoxiao-iris 已提交
922
  | 参数名       | 类型            | 必填  | 说明                |
923 924 925
  | ------------- | --------------- | ---- | ------------------- |
  | operateAction | number          | 是    | 用户操作动作。       |
  | params        | string          | 是    | 表示用户的输入参数。 |
@
@shi-xiaoxiao-iris 已提交
926

@
@shi-xiaoxiao-iris 已提交
927
**示例:**
@
@shi-xiaoxiao-iris 已提交
928 929

  ```js
@
@shi-xiaoxiao-iris 已提交
930 931 932 933 934 935 936 937 938 939
 try {
    /*
      operateAction = 0 - 允许授权
      operateAction = 1 - 取消授权
      operateAction = 2 - 授权框用户操作超时
      operateAction = 3 - 取消pin码框展示
      operateAction = 4 - 取消pin码输入框展示
      operateAction = 5 - pin码输入框确定操作
    */
    let operation = 0;
940
    dmInstance.setUserOperation(operation, "extra")
@
@shi-xiaoxiao-iris 已提交
941 942
    } catch (err) {
      console.error("setUserOperation errCode:" + err.code + ",errMessage:" + err.message);
@
@shi-xiaoxiao-iris 已提交
943 944 945
  }
  ```

W
wuqi0105 已提交
946
### requestCredentialRegisterInfo<sup>10+</sup>
W
wuqi0105 已提交
947

W
wuqi0105 已提交
948
requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback<{registerInfo: string}>): void;
W
wuqi0105 已提交
949 950 951

获取凭据的注册信息。

史晓晓 已提交
952
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
953

W
wuqi0105 已提交
954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型            | 必填  | 说明                |
  | ------------- | --------------- | ---- | ------------------- |
  | requestInfo   | string          | 是    | 请求凭据信息。       |
  | callback      | AsyncCallback<{registerInfo: string}>         | 是    | 凭据的注册信息回调。 |

**示例:**

  ```js
  let credentialInfo = {
    "version" : "1.2.3",
    "userId" : "123"
  }
  try {
W
wangxuanxuan 已提交
971
    dmInstance.requestCredentialRegisterInfo(credentialInfo, (data) => {
W
wuqi0105 已提交
972
      if (data) {
W
wuqi0105 已提交
973
          console.info("requestCredentialRegisterInfo result:" + JSON.stringify(data));
W
wuqi0105 已提交
974
      } else {
W
wangxuanxuan 已提交
975
          console.info("requestCredentialRegisterInfo result: data is null");
W
wuqi0105 已提交
976 977 978
      }
    });
  } catch (err) {
W
wuqi0105 已提交
979
    console.error("requestCredentialRegisterInfo err:" + err.code + "," + err.message);
W
wuqi0105 已提交
980 981 982 983 984 985 986 987 988
  }
  ```

### importCredential<sup>10+</sup>

importCredential(credentialInfo: string, callback: AsyncCallback<{resultInfo: string}>): void;

导入凭据信息。

史晓晓 已提交
989
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
990

W
wuqi0105 已提交
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型            | 必填  | 说明                |
  | ------------- | --------------- | ---- | ------------------- |
  | credentialInfo| string          | 是    | 导入凭据信息。       |
  | callback      | AsyncCallback<{resultInfo: string}>           | 是    | 导入凭据结果回调。 |

**示例:**

  ```js
  let credentialInfo = {
    "processType" : 1,
    "authType" : 1,
    "userId" : "123",
    "deviceId" : "aaa",
    "version" : "1.2.3",
    "devicePk" : "0000",
    "credentialData" : 
    [
      {
        "credentialType" : 2,
        "credentialId" : "102",
        "serverPk" : "3059301306072A8648CE3D020106082A8648CE3D03",
        "pkInfoSignature" : "30440220490BCB4F822004C9A76AB8D97F80041FC0E",
        "pkInfo" : "",
        "authCode" : "",
        "peerDeviceId" : ""
      }
    ]
  }
  try {
W
wangxuanxuan 已提交
1024
    dmInstance.importCredential(credentialInfo, (data) => {
W
wuqi0105 已提交
1025 1026 1027
      if (data) {
          console.info("importCredential result:" + JSON.stringify(data));
      } else {
W
wangxuanxuan 已提交
1028
          console.info("importCredential result: data is null");
W
wuqi0105 已提交
1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041
      }
    });
  } catch (err) {
    console.error("importCredential err:" + err.code + "," + err.message);
  }
  ```

### deleteCredential<sup>10+</sup>

deleteCredential(queryInfo: string, callback: AsyncCallback<{resultInfo: string}>): void;

删除凭据信息。

史晓晓 已提交
1042
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1043

W
wuqi0105 已提交
1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

**参数:**

  | 参数名       | 类型            | 必填  | 说明                |
  | ------------- | --------------- | ---- | ------------------- |
  | queryInfo     | string          | 是    | 删除凭据信息。       |
  | callback      | AsyncCallback<{resultInfo: string}>           | 是    | 删除凭据结果回调。 |

**示例:**

  ```js
  let queryInfo = {
    "processType" : 1,
    "authType" : 1,
    "userId" : "123"
  }
  try {
W
wangxuanxuan 已提交
1062
    dmInstance.deleteCredential(queryInfo, (data) => {
W
wuqi0105 已提交
1063 1064 1065
      if (data) {
          console.info("deleteCredential result:" + JSON.stringify(data));
      } else {
W
wangxuanxuan 已提交
1066
          console.info("deleteCredential result: data is null");
W
wuqi0105 已提交
1067 1068 1069 1070 1071 1072 1073
      }
    });
  } catch (err) {
    console.error("deleteCredential err:" + err.code + "," + err.message);
  }
  ```

@
@shi-xiaoxiao-iris 已提交
1074
### on('uiStateChange')<sup>9+</sup>
@
@shi-xiaoxiao-iris 已提交
1075

1076
on(type: 'uiStateChange', callback: Callback&lt;{ param: string}&gt;): void;
@
@shi-xiaoxiao-iris 已提交
1077 1078 1079

ui状态变更回调。

史晓晓 已提交
1080
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1081

@
@shi-xiaoxiao-iris 已提交
1082 1083
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1084
**参数:**
@
@shi-xiaoxiao-iris 已提交
1085

@
@shi-xiaoxiao-iris 已提交
1086
  | 参数名      | 类型                             | 必填 | 说明                            |
@
@shi-xiaoxiao-iris 已提交
1087 1088
  | -------- | ------------------------------------ | ---- | ------------------------------ |
  | type     | string                                | 是  | 注册的设备管理器 ui 状态回调,以便在状态改变时通知应用。 |
1089
  | callback | Callback&lt;{&nbsp;param:&nbsp;string}&gt; | 是  | 指示要注册的设备管理器 ui 状态回调,返回ui状态。        |
@
@shi-xiaoxiao-iris 已提交
1090

@
@shi-xiaoxiao-iris 已提交
1091
**示例:**
@
@shi-xiaoxiao-iris 已提交
1092 1093 1094

  ```js
  try {
@
@shi-xiaoxiao-iris 已提交
1095
    dmInstance.on('uiStateChange', (data) => {
@
@shi-xiaoxiao-iris 已提交
1096 1097
    console.log("uiStateChange executed, dialog closed" + JSON.stringify(data))
    var tmpStr = JSON.parse(data.param)
1098 1099
    var isShow = tmpStr.verifyFailed
    console.log("uiStateChange executed, dialog closed" + isShow)
@
@shi-xiaoxiao-iris 已提交
1100 1101 1102 1103 1104 1105
  });
  } catch (err) {
    console.error("uiStateChange errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

@
@shi-xiaoxiao-iris 已提交
1106
### off('uiStateChange')<sup>9+</sup>
@
@shi-xiaoxiao-iris 已提交
1107

1108
off(type: 'uiStateChange', callback?: Callback&lt;{ param: string}&gt;): void;
@
@shi-xiaoxiao-iris 已提交
1109

1110 1111
取消ui状态变更回调。

史晓晓 已提交
1112
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1113

@
@shi-xiaoxiao-iris 已提交
1114 1115
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1116
**参数:**
@
@shi-xiaoxiao-iris 已提交
1117

@
@shi-xiaoxiao-iris 已提交
1118
  | 参数名      | 类型                              | 必填 | 说明                            |
@
@shi-xiaoxiao-iris 已提交
1119 1120
  | -------- | ------------------------------------- | ---- | ------------------------------ |
  | type     | string                                | 是   | 取消注册的设备管理器 ui 状态回调。 |
1121
  | callback | Callback&lt;{&nbsp;param:&nbsp;string}&gt; | 否   | 指示要取消注册的设备管理器 ui 状态,返回UI状态。 |
@
@shi-xiaoxiao-iris 已提交
1122

@
@shi-xiaoxiao-iris 已提交
1123
**示例:**
@
@shi-xiaoxiao-iris 已提交
1124 1125 1126

  ```js
  try {
@
@shi-xiaoxiao-iris 已提交
1127
    dmInstance.off('uiStateChange');
@
@shi-xiaoxiao-iris 已提交
1128 1129 1130 1131 1132
  } catch (err) {
    console.error("uiStateChange errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

Z
zengyawen 已提交
1133
### on('deviceStateChange')
Z
zengyawen 已提交
1134

1135
on(type: 'deviceStateChange',  callback: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
Z
zengyawen 已提交
1136

Z
zengyawen 已提交
1137 1138
注册设备状态回调。

史晓晓 已提交
1139
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1140

1141 1142
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1143
**参数:**
@
@shi-xiaoxiao-iris 已提交
1144

@
@shi-xiaoxiao-iris 已提交
1145
  | 参数名       | 类型                                     | 必填   | 说明                             |
H
HelloCrease 已提交
1146 1147
  | -------- | ---------------------------------------- | ---- | ------------------------------ |
  | type     | string                                   | 是    | 注册设备状态回调,固定为deviceStateChange。 |
1148
  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是    | 指示要注册的设备状态回调,返回设备状态和设备信息。      |
Z
zengyawen 已提交
1149

@
@shi-xiaoxiao-iris 已提交
1150
**示例:**
@
@shi-xiaoxiao-iris 已提交
1151

1152
  ```js
1153 1154 1155 1156 1157
  try {
    dmInstance.on('deviceStateChange', (data) => {
      console.info("deviceStateChange on:" + JSON.stringify(data));
    });
  } catch (err) {
1158
    console.error("deviceStateChange errCode:" + err.code + ",errMessage:" + err.message);
1159
  }
Z
zengyawen 已提交
1160
  ```
Z
zengyawen 已提交
1161

Z
zengyawen 已提交
1162
### off('deviceStateChange')
Z
zengyawen 已提交
1163

1164
off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
Z
zengyawen 已提交
1165 1166 1167

取消注册设备状态回调。

史晓晓 已提交
1168
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1169

1170 1171
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1172
**参数:**
@
@shi-xiaoxiao-iris 已提交
1173

@
@shi-xiaoxiao-iris 已提交
1174
  | 参数名       | 类型                                     | 必填   | 说明                          |
H
HelloCrease 已提交
1175 1176
  | -------- | ---------------------------------------- | ---- | --------------------------- |
  | type     | string                                   | 是    | 根据应用程序的包名取消注册设备状态回调。        |
1177
  | callback | Callback&lt;{&nbsp;action:&nbsp;[DeviceStateChangeAction](#devicestatechangeaction),&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 否    | 指示要取消注册的设备状态回调,返回设备状态和设备信息。 |
Z
zengyawen 已提交
1178

@
@shi-xiaoxiao-iris 已提交
1179
**示例:**
@
@shi-xiaoxiao-iris 已提交
1180

1181
  ```js
1182 1183 1184 1185 1186
  try {
    dmInstance.off('deviceStateChange', (data) => {
      console.info('deviceStateChange' + JSON.stringify(data));
    });
  } catch (err) {
1187
    console.error("deviceStateChange errCode:" + err.code + ",errMessage:" + err.message);
1188
  }
Z
zengyawen 已提交
1189 1190
  ```

1191 1192
### on('deviceFound')

1193
on(type: 'deviceFound', callback: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
1194 1195 1196

注册发现设备回调监听。

史晓晓 已提交
1197
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1198

1199 1200
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1201
**参数:**
@
@shi-xiaoxiao-iris 已提交
1202

@
@shi-xiaoxiao-iris 已提交
1203
  | 参数名       | 类型                                     | 必填   | 说明                         |
H
HelloCrease 已提交
1204 1205
  | -------- | ---------------------------------------- | ---- | -------------------------- |
  | type     | string                                   | 是    | 注册设备发现回调,以便在发现周边设备时通知应用程序。 |
1206
  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 是    | 注册设备发现的回调方法。               |
1207

@
@shi-xiaoxiao-iris 已提交
1208
**示例:**
@
@shi-xiaoxiao-iris 已提交
1209

1210
  ```js
1211 1212 1213 1214 1215
  try {
    dmInstance.on('deviceFound', (data) => {
      console.info("deviceFound:" + JSON.stringify(data));
    });
  } catch (err) {
1216
    console.error("deviceFound errCode:" + err.code + ",errMessage:" + err.message);
1217
  }
1218 1219 1220 1221
  ```

### off('deviceFound')

1222
off(type: 'deviceFound', callback?: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
1223 1224 1225

取消注册设备发现回调。

史晓晓 已提交
1226
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1227

1228 1229
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1230
**参数:**
@
@shi-xiaoxiao-iris 已提交
1231

@
@shi-xiaoxiao-iris 已提交
1232
  | 参数名       | 类型                                     | 必填   | 说明                          |
H
HelloCrease 已提交
1233 1234
  | -------- | ---------------------------------------- | ---- | --------------------------- |
  | type     | string                                   | 是    | 取消注册设备发现回调。                 |
1235
  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;device:&nbsp;[DeviceInfo](#deviceinfo)&nbsp;}&gt; | 否    | 指示要取消注册的设备发现回调,返回设备状态和设备信息。 |
1236

@
@shi-xiaoxiao-iris 已提交
1237
**示例:**
@
@shi-xiaoxiao-iris 已提交
1238

1239
  ```js
1240 1241 1242 1243 1244
  try {
    dmInstance.off('deviceFound', (data) => {
      console.info('deviceFound' + JSON.stringify(data));
    });
  } catch (err) {
1245
    console.error("deviceFound errCode:" + err.code + ",errMessage:" + err.message);
1246
  }
1247 1248 1249 1250
  ```

### on('discoverFail')

1251
on(type: 'discoverFail', callback: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
1252 1253 1254

注册设备发现失败回调监听。

史晓晓 已提交
1255
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1256

1257 1258
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1259
**参数:**
@
@shi-xiaoxiao-iris 已提交
1260

@
@shi-xiaoxiao-iris 已提交
1261
  | 参数名       | 类型                                     | 必填   | 说明                             |
H
HelloCrease 已提交
1262 1263
  | -------- | ---------------------------------------- | ---- | ------------------------------ |
  | type     | string                                   | 是    | 注册设备发现失败回调,以便在发现周边设备失败时通知应用程序。 |
1264
  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 是    | 注册设备发现失败的回调方法。                 |
1265

@
@shi-xiaoxiao-iris 已提交
1266
**示例:**
@
@shi-xiaoxiao-iris 已提交
1267

1268
  ```js
1269 1270
  try {
    dmInstance.on('discoverFail', (data) => {
1271
        console.info("discoverFail on:" + JSON.stringify(data));
1272
    });
1273
  } catch (err) {
1274
    console.error("discoverFail errCode:" + err.code + ",errMessage:" + err.message);
1275
  }
1276 1277 1278 1279
  ```

### off('discoverFail')

1280
off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
1281 1282 1283

取消注册设备发现失败回调。

史晓晓 已提交
1284
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1285

1286 1287
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1288
**参数:**
@
@shi-xiaoxiao-iris 已提交
1289

@
@shi-xiaoxiao-iris 已提交
1290
  | 参数名       | 类型                                     | 必填   | 说明                |
H
HelloCrease 已提交
1291 1292
  | -------- | ---------------------------------------- | ---- | ----------------- |
  | type     | string                                   | 是    | 取消注册设备发现失败回调。     |
1293
  | callback | Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 否    | 指示要取消注册的设备发现失败回调。 |
1294

@
@shi-xiaoxiao-iris 已提交
1295
**示例:**
@
@shi-xiaoxiao-iris 已提交
1296

1297
  ```js
1298 1299 1300 1301 1302
  try {
    dmInstance.off('discoverFail', (data) => {
      console.info('discoverFail' + JSON.stringify(data));
    });
  } catch (err) {
1303
    console.error("discoverFail errCode:" + err.code + ",errMessage:" + err.message);
1304
  }
1305 1306
  ```

@
@shi-xiaoxiao-iris 已提交
1307
### on('publishSuccess')<sup>9+</sup>
S
summer8999 已提交
1308

1309
on(type: 'publishSuccess', callback: Callback&lt;{ publishId: number }&gt;): void
S
summer8999 已提交
1310 1311 1312

注册发布设备发现回调监听。

史晓晓 已提交
1313
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1314

S
summer8999 已提交
1315 1316
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1317
**参数:**
@
@shi-xiaoxiao-iris 已提交
1318

@
@shi-xiaoxiao-iris 已提交
1319
  | 参数名     | 类型                                 | 必填 | 说明                       |
S
summer8999 已提交
1320
  | -------- | ---------------------------------------- | ---- | -------------------------- |
S
summer8999 已提交
1321
  | type     | string                                   | 是   | 注册发布设备成功回调,以便将发布成功时通知应用程序。 |
1322
  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number&nbsp;}&gt;    | 是   | 注册设备发布成功的回调方法。               |
S
summer8999 已提交
1323

@
@shi-xiaoxiao-iris 已提交
1324

@
@shi-xiaoxiao-iris 已提交
1325
**示例:**
@
@shi-xiaoxiao-iris 已提交
1326

S
summer8999 已提交
1327
  ```js
1328 1329 1330 1331 1332
  try {
    dmInstance.on('publishSuccess', (data) => {
      console.info("publishSuccess:" + JSON.stringify(data));
    });
  } catch (err) {
1333
    console.error("publishSuccess errCode:" + err.code + ",errMessage:" + err.message);
1334
  }
S
summer8999 已提交
1335 1336
  ```

@
@shi-xiaoxiao-iris 已提交
1337
### off('publishSuccess')<sup>9+</sup>
S
summer8999 已提交
1338

1339
off(type: 'publishSuccess', callback?: Callback&lt;{ publishId: number }&gt;): void
S
summer8999 已提交
1340

S
summer8999 已提交
1341
取消注册设备发布成功回调。
S
summer8999 已提交
1342

史晓晓 已提交
1343
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1344

S
summer8999 已提交
1345 1346
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1347
**参数:**
@
@shi-xiaoxiao-iris 已提交
1348

@
@shi-xiaoxiao-iris 已提交
1349
  | 参数名     | 类型                                 | 必填 | 说明                          |
S
summer8999 已提交
1350
  | -------- | ---------------------------------------- | ---- | --------------------------- |
S
summer8999 已提交
1351
  | type     | string                                   | 是   | 取消注册设备发布成功回调。                 |
1352
  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number&nbsp;}&gt;    | 否   | 指示要取消注册的设备发布成功回调。 |
S
summer8999 已提交
1353

@
@shi-xiaoxiao-iris 已提交
1354
**示例:**
@
@shi-xiaoxiao-iris 已提交
1355

S
summer8999 已提交
1356
  ```js
1357 1358 1359 1360 1361
  try {
    dmInstance.off('publishSuccess', (data) => {
      console.info('publishSuccess' + JSON.stringify(data));
    });
  } catch (err) {
1362
    console.error("publishSuccess errCode:" + err.code + ",errMessage:" + err.message);
1363
  }
S
summer8999 已提交
1364 1365
  ```

@
@shi-xiaoxiao-iris 已提交
1366
### on('publishFail')<sup>9+</sup>
S
summer8999 已提交
1367

1368
on(type: 'publishFail', callback: Callback&lt;{ publishId: number, reason: number }&gt;): void
S
summer8999 已提交
1369 1370 1371

注册设备发布失败回调监听。

史晓晓 已提交
1372
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1373

S
summer8999 已提交
1374 1375
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1376
**参数:**
@
@shi-xiaoxiao-iris 已提交
1377

@
@shi-xiaoxiao-iris 已提交
1378
  | 参数名     | 类型                                              | 必填 | 说明                             |
S
summer8999 已提交
1379 1380
  | -------- | ----------------------------------------------------- | ---- | ------------------------------ |
  | type     | string                                                | 是   | 注册设备发布失败回调,以便在发布设备失败时通知应用程序。 |
1381
  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 是   | 注册设备发布失败的回调方法。                 |
S
summer8999 已提交
1382

@
@shi-xiaoxiao-iris 已提交
1383
**示例:**
@
@shi-xiaoxiao-iris 已提交
1384

S
summer8999 已提交
1385
  ```js
1386 1387
  try {
    dmInstance.on('publishFail', (data) => {
1388
      console.info("publishFail on:" + JSON.stringify(data));
1389 1390
    });
  } catch (err) {
1391
    console.error("publishFail errCode:" + err.code + ",errMessage:" + err.message);
1392
  }
S
summer8999 已提交
1393 1394
  ```

@
@shi-xiaoxiao-iris 已提交
1395
### off('publishFail')<sup>9+</sup>
S
summer8999 已提交
1396

1397
off(type: 'publishFail', callback?: Callback&lt;{ publishId: number, reason: number }&gt;): void
S
summer8999 已提交
1398

S
summer8999 已提交
1399
取消注册设备发布失败回调。
S
summer8999 已提交
1400

史晓晓 已提交
1401
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1402

S
summer8999 已提交
1403 1404
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1405
**参数:**
@
@shi-xiaoxiao-iris 已提交
1406

@
@shi-xiaoxiao-iris 已提交
1407
  | 参数名     | 类型                                              | 必填 | 说明                |
S
summer8999 已提交
1408 1409
  | -------- | ----------------------------------------------------- | ---- | ----------------- |
  | type     | string                                                | 是   | 取消注册设备发布失败回调。     |
1410
  | callback | Callback&lt;{&nbsp;publishId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt; | 否   | 指示要取消注册设备发布失败回调。 |
S
summer8999 已提交
1411

@
@shi-xiaoxiao-iris 已提交
1412
**示例:**
@
@shi-xiaoxiao-iris 已提交
1413

S
summer8999 已提交
1414
  ```js
1415 1416 1417 1418 1419
  try {
    dmInstance.off('publishFail', (data) => {
      console.info('publishFail' + JSON.stringify(data));
    });
  } catch (err) {
1420
    console.error("publishFail errCode:" + err.code + ",errMessage:" + err.message);
1421
  }
S
summer8999 已提交
1422
  ```
1423

Z
zengyawen 已提交
1424 1425 1426
### on('serviceDie')

on(type: 'serviceDie', callback: () =&gt; void): void
Z
zengyawen 已提交
1427 1428 1429

注册设备管理服务死亡监听。

史晓晓 已提交
1430
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1431

1432 1433
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1434
**参数:**
@
@shi-xiaoxiao-iris 已提交
1435

@
@shi-xiaoxiao-iris 已提交
1436
  | 参数名       | 类型                    | 必填   | 说明                                       |
H
HelloCrease 已提交
1437 1438 1439
  | -------- | ----------------------- | ---- | ---------------------------------------- |
  | type     | string                  | 是    | 注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
  | callback | ()&nbsp;=&gt;&nbsp;void | 是    | 注册serviceDie的回调方法。                       |
Z
zengyawen 已提交
1440

@
@shi-xiaoxiao-iris 已提交
1441
**示例:**
@
@shi-xiaoxiao-iris 已提交
1442

1443
  ```js
1444 1445 1446 1447 1448
  try {
    dmInstance.on("serviceDie", () => {
      console.info("serviceDie on");
    });
  } catch (err) {
1449
    console.error("serviceDie errCode:" + err.code + ",errMessage:" + err.message);
1450
  }
Z
zengyawen 已提交
1451
  ```
Z
zengyawen 已提交
1452

Z
zengyawen 已提交
1453 1454 1455 1456 1457
### off('serviceDie')

off(type: 'serviceDie', callback?: () =&gt; void): void

取消注册设备管理服务死亡监听。
Z
zengyawen 已提交
1458

史晓晓 已提交
1459
**需要权限**:ohos.permission.ACCESS_SERVICE_DM
1460

1461 1462
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
1463
**参数:**
@
@shi-xiaoxiao-iris 已提交
1464

@
@shi-xiaoxiao-iris 已提交
1465
  | 参数名       | 类型                    | 必填   | 说明                                       |
H
HelloCrease 已提交
1466 1467 1468
  | -------- | ----------------------- | ---- | ---------------------------------------- |
  | type     | string                  | 是    | 取消注册serviceDie回调,以便在devicemanager服务异常终止时通知应用程序。 |
  | callback | ()&nbsp;=&gt;&nbsp;void | 否    | 取消注册serviceDie的回调方法。                     |
Z
zengyawen 已提交
1469

@
@shi-xiaoxiao-iris 已提交
1470
**示例:**
@
@shi-xiaoxiao-iris 已提交
1471

1472
  ```js
1473 1474 1475 1476 1477
  try {
    dmInstance.off("serviceDie", () => {
      console.info("serviceDie off");
    });
  } catch (err) {
1478
    console.error("serviceDie errCode:" + err.code + ",errMessage:" + err.message);
1479
  }
1480
  ```