js-apis-device-manager.md 47.5 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 231
**系统能力**:SystemCapability.DistributedHardware.DeviceManager

@
@shi-xiaoxiao-iris 已提交
232
**错误码:**
@
@shi-xiaoxiao-iris 已提交
233

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

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

@
@shi-xiaoxiao-iris 已提交
240
**示例:**
@
@shi-xiaoxiao-iris 已提交
241

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

Z
zengyawen 已提交
250
### getTrustedDeviceListSync
Z
zengyawen 已提交
251

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

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

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

@
@shi-xiaoxiao-iris 已提交
258
**返回值:**
@
@shi-xiaoxiao-iris 已提交
259

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

@
@shi-xiaoxiao-iris 已提交
264
**错误码:**
@
@shi-xiaoxiao-iris 已提交
265

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

@
@shi-xiaoxiao-iris 已提交
268
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
269 270
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
271

@
@shi-xiaoxiao-iris 已提交
272
**示例:**
@
@shi-xiaoxiao-iris 已提交
273

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

282 283 284 285 286 287 288 289
### getTrustedDeviceList<sup>8+</sup>

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

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

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

@
@shi-xiaoxiao-iris 已提交
290
**参数:**
@
@shi-xiaoxiao-iris 已提交
291

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

@
@shi-xiaoxiao-iris 已提交
296
**示例:**
@
@shi-xiaoxiao-iris 已提交
297

298
  ```js
299 300 301
  try {
    dmInstance.getTrustedDeviceList((err, data) => {
      if (err) {
302
        console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
303 304
        return;
      }
305
      console.log('get trusted device info: ' + JSON.stringify(data));
306
    });
307
  } catch (err) {
308
    console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
309
  }
310 311 312 313 314 315 316 317 318 319
  ```

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

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

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

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

@
@shi-xiaoxiao-iris 已提交
320
**返回值:**
@
@shi-xiaoxiao-iris 已提交
321

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

@
@shi-xiaoxiao-iris 已提交
326
**错误码:**
@
@shi-xiaoxiao-iris 已提交
327

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

@
@shi-xiaoxiao-iris 已提交
330
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
331 332
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
333

@
@shi-xiaoxiao-iris 已提交
334
**示例:**
@
@shi-xiaoxiao-iris 已提交
335

336
  ```js
337 338 339
  dmInstance.getTrustedDeviceList().then((data) => {
    console.log('get trusted device info: ' + JSON.stringify(data));
    }).catch((err) => {
340
      console.error("getTrustedDeviceList errCode:" + err.code + ",errMessage:" + err.message);
341
  });
342 343 344 345 346 347 348 349 350 351
  ```

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

getLocalDeviceInfoSync(): [DeviceInfo](#deviceinfo)

同步获取本地设备信息。

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

@
@shi-xiaoxiao-iris 已提交
352
**返回值:**
@
@shi-xiaoxiao-iris 已提交
353

354 355 356
  | 名称                      | 说明              |
  | ------------------------- | ---------------- |
  | [DeviceInfo](#deviceinfo) | 返回本地设备列表。 |
357

@
@shi-xiaoxiao-iris 已提交
358
**错误码:**
@
@shi-xiaoxiao-iris 已提交
359

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

@
@shi-xiaoxiao-iris 已提交
362
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
363 364
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
365

@
@shi-xiaoxiao-iris 已提交
366
**示例:**
@
@shi-xiaoxiao-iris 已提交
367

368
  ```js
369 370 371
  try {
    var deviceInfo = dmInstance.getLocalDeviceInfoSync();
  } catch (err) {
372
    console.error("getLocalDeviceInfoSync errCode:" + err.code + ",errMessage:" + err.message);
373
  }
374 375 376 377 378 379 380 381 382 383
  ```

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

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

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

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

@
@shi-xiaoxiao-iris 已提交
384
**参数:**
@
@shi-xiaoxiao-iris 已提交
385

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

@
@shi-xiaoxiao-iris 已提交
390
**示例:**
@
@shi-xiaoxiao-iris 已提交
391

392
  ```js
393
  try {
394
    dmInstance.getLocalDeviceInfo((err, data) => {
395
    if (err) {
396
      console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
397
      return;
398
    }
399 400 401
      console.log('get local device info: ' + JSON.stringify(data));
    });
  } catch (err) {
402
    console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
403
  }
404 405 406 407 408 409 410 411 412 413
  ```

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

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

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

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

@
@shi-xiaoxiao-iris 已提交
414 415
**返回值:**

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

@
@shi-xiaoxiao-iris 已提交
420
**错误码:**
@
@shi-xiaoxiao-iris 已提交
421

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

@
@shi-xiaoxiao-iris 已提交
424
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
425 426 427
| ------- | --------------------------------------------------------------- |
| 11600101| Failed to execute the function.                                 |

@
@shi-xiaoxiao-iris 已提交
428
**示例:**
@
@shi-xiaoxiao-iris 已提交
429

430
  ```js
431 432 433
  dmInstance.getLocalDeviceInfo().then((data) => {
    console.log('get local device info: ' + JSON.stringify(data));
  }).catch((err) => {
434
    console.error("getLocalDeviceInfo errCode:" + err.code + ",errMessage:" + err.message);
435
  });
436 437
  ```

S
summer8999 已提交
438 439
### getDeviceInfo<sup>10+</sup>

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

S
summer8999 已提交
442
通过指定设备的网络标识获取该设备的信息。使用callback异步回调。
S
summer8999 已提交
443 444 445 446 447 448 449

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

**参数:**

  | 参数名       | 类型                                     | 必填   | 说明        |
  | -------- | ---------------------------------------- | ---- | --------- |
S
summer8999 已提交
450
  | networkId| string                                   | 是   | 设备的网络标识。 |
S
summer8999 已提交
451 452 453 454 455 456
  | callback | AsyncCallback&lt;[DeviceInfo](#deviceinfo)&gt; | 是    | 获取指定设备信息。 |

**示例:**

  ```js
  try {
W
wangxuanxuan 已提交
457 458
    // 设备网络标识,可以从可信设备列表中获取
    let networkId = "xxxxxxx"
S
summer8999 已提交
459 460 461 462 463 464 465 466 467 468 469 470 471 472
    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 已提交
473
getDeviceInfo(networkId: string): Promise&lt;DeviceInfo&gt;
S
summer8999 已提交
474

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

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

S
summer8999 已提交
479 480 481 482 483 484
**参数:**

  | 参数名   | 类型                                     | 必填 | 说明        |
  | -------- | ---------------------------------------- | ---- | --------- |
  | networkId| string                                   | 是   | 设备的网络标识。 |
  
S
summer8999 已提交
485 486 487 488 489 490 491 492 493
**返回值:**

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

**示例:**

  ```js
W
wangxuanxuan 已提交
494 495
  // 设备网络标识,可以从可信设备列表中获取
  let networkId = "xxxxxxx"
S
summer8999 已提交
496 497 498 499 500 501 502
  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 已提交
503
### startDeviceDiscovery<sup>8+</sup>
504 505 506

startDeviceDiscovery(subscribeInfo: SubscribeInfo): void

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

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

@
@shi-xiaoxiao-iris 已提交
511
**参数:**
@
@shi-xiaoxiao-iris 已提交
512

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

@
@shi-xiaoxiao-iris 已提交
517
**错误码:**
@
@shi-xiaoxiao-iris 已提交
518

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

@
@shi-xiaoxiao-iris 已提交
521
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
522 523 524 525
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600104 | Discovery invalid.                                              |

@
@shi-xiaoxiao-iris 已提交
526
**示例:**
@
@shi-xiaoxiao-iris 已提交
527

528
  ```js
529
  // 生成发现标识,随机数确保每次调用发现接口的标识不一致
530 531 532
  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
  var subscribeInfo = {
      "subscribeId": subscribeId,
533 534 535
      "mode": 0xAA, // 主动模式
      "medium": 0,  // 自动发现类型,同时支持多种发现类型
      "freq": 2,    // 高频率
536 537 538 539
      "isSameAccount": false,
      "isWakeRemote": false,
      "capability": 1
  };
540 541 542
  try {
    dmInstance.startDeviceDiscovery(subscribeInfo); // 当有设备发现时,通过deviceFound回调通知给应用程序
  } catch (err) {
543
    console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
544
  }
545 546
  ```

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

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

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

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

@
@shi-xiaoxiao-iris 已提交
555
**参数:**
@
@shi-xiaoxiao-iris 已提交
556

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

@
@shi-xiaoxiao-iris 已提交
562
**错误码:**
@
@shi-xiaoxiao-iris 已提交
563

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

@
@shi-xiaoxiao-iris 已提交
566
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
567 568 569 570
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600104 | Discovery invalid.                                              |

@
@shi-xiaoxiao-iris 已提交
571
**示例:**
@
@shi-xiaoxiao-iris 已提交
572

S
summer8999 已提交
573
  ```js
574
  // 生成发现标识,随机数确保每次调用发现接口的标识不一致
S
summer8999 已提交
575 576 577
  var subscribeId = Math.floor(Math.random() * 10000 + 1000);
  var subscribeInfo = {
      "subscribeId": subscribeId,
578 579 580
      "mode": 0xAA, // 主动模式
      "medium": 0,  // 自动发现类型,同时支持多种发现类型
      "freq": 2,    // 高频率
S
summer8999 已提交
581 582 583 584 585
      "isSameAccount": false,
      "isWakeRemote": false,
      "capability": 1
  };
  var filterOptions = {
S
summer8999 已提交
586
    "filter_op": "OR", // 可选, 默认"OR"
S
summer8999 已提交
587 588 589
    "filters": [
        {
            "type": "range",
S
summer8999 已提交
590
            "value": 50 // 需过滤发现设备的距离,单位(cm)
S
summer8999 已提交
591 592
        }
    ]
S
summer8999 已提交
593
  };
594 595 596
  try {
    dmInstance.startDeviceDiscovery(subscribeInfo, JSON.stringify(filterOptions)); // 当有设备发现时,通过deviceFound回调通知给应用程序
  } catch (err) {
597
    console.error("startDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
598
  }
S
summer8999 已提交
599
  ```
@
@shi-xiaoxiao-iris 已提交
600

601 602 603 604 605 606 607 608
### stopDeviceDiscovery

stopDeviceDiscovery(subscribeId: number): void

停止发现周边设备。

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

@
@shi-xiaoxiao-iris 已提交
609
**参数:**
@
@shi-xiaoxiao-iris 已提交
610

@
@shi-xiaoxiao-iris 已提交
611
  | 参数名          | 类型   | 必填   | 说明    |
H
HelloCrease 已提交
612 613
  | ----------- | ------ | ---- | ----- |
  | subscribeId | number | 是    | 发现标识。 |
614

@
@shi-xiaoxiao-iris 已提交
615
**错误码:**
@
@shi-xiaoxiao-iris 已提交
616

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

@
@shi-xiaoxiao-iris 已提交
619
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
620 621
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
622

@
@shi-xiaoxiao-iris 已提交
623
**示例:**
@
@shi-xiaoxiao-iris 已提交
624

625
  ```js
626
  try {
627 628
    // stopDeviceDiscovery和startDeviceDiscovery需配对使用,入参需要和startDeviceDiscovery接口传入的subscribeId值相等
    var subscribeId = 12345;
629 630
    dmInstance.stopDeviceDiscovery(subscribeId);
  } catch (err) {
631
    console.error("stopDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
632
  }
633 634
  ```

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

S
summer8999 已提交
637
publishDeviceDiscovery(publishInfo: PublishInfo): void
S
summer8999 已提交
638

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

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

@
@shi-xiaoxiao-iris 已提交
643
**参数:**
@
@shi-xiaoxiao-iris 已提交
644

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

@
@shi-xiaoxiao-iris 已提交
649
**错误码:**
@
@shi-xiaoxiao-iris 已提交
650

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

@
@shi-xiaoxiao-iris 已提交
653
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
654 655 656
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
| 11600105 | Publish invalid.                                                |
@
@shi-xiaoxiao-iris 已提交
657

@
@shi-xiaoxiao-iris 已提交
658
**示例:**
@
@shi-xiaoxiao-iris 已提交
659

S
summer8999 已提交
660
  ```js
661
  // 生成发布标识,随机数确保每次调用发布接口的标识不一致
S
summer8999 已提交
662
  var publishId = Math.floor(Math.random() * 10000 + 1000);
S
summer8999 已提交
663
  var publishInfo = {
S
summer8999 已提交
664
      "publishId": publishId,
665 666
      "mode": 0xAA, // 主动模式
      "freq": 2,    // 高频率
667
      "ranging": true  // 支持发现时测距
S
summer8999 已提交
668
  };
669 670 671
  try {
    dmInstance.publishDeviceDiscovery(publishInfo); // 当有发布结果时,通过回调通知给应用程序
  } catch (err) {
672
    console.error("publishDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
673
  }
S
summer8999 已提交
674
  ```
675

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

S
summer8999 已提交
678
unPublishDeviceDiscovery(publishId: number): void
S
summer8999 已提交
679 680 681 682 683

停止发布设备发现。

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

@
@shi-xiaoxiao-iris 已提交
684
**参数:**
@
@shi-xiaoxiao-iris 已提交
685

@
@shi-xiaoxiao-iris 已提交
686
  | 参数名        | 类型 | 必填 | 说明  |
S
summer8999 已提交
687 688
  | ----------- | -------- | ---- | ----- |
  | publishId   | number   | 是   | 发布标识。 |
S
summer8999 已提交
689

@
@shi-xiaoxiao-iris 已提交
690
**错误码:**
@
@shi-xiaoxiao-iris 已提交
691

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

@
@shi-xiaoxiao-iris 已提交
694
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
695 696
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
697

@
@shi-xiaoxiao-iris 已提交
698
**示例:**
@
@shi-xiaoxiao-iris 已提交
699

S
summer8999 已提交
700
  ```js
701
  try {
702 703
    // unPublishDeviceDiscovery和publishDeviceDiscovery配对使用,入参需要和publishDeviceDiscovery接口传入的publishId值相等
    var publishId = 12345;
704
    dmInstance.unPublishDeviceDiscovery(publishId);
705
  } catch (err) {
706
    console.error("unPublishDeviceDiscovery errCode:" + err.code + ",errMessage:" + err.message);
707
  }
S
summer8999 已提交
708 709
  ```

710 711
### authenticateDevice

712
authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback&lt;{deviceId: string, pinToken ?: number}&gt;): void
713 714 715 716 717

认证设备。

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

@
@shi-xiaoxiao-iris 已提交
718
**参数:**
@
@shi-xiaoxiao-iris 已提交
719

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

@
@shi-xiaoxiao-iris 已提交
726
**示例:**
@
@shi-xiaoxiao-iris 已提交
727

728
  ```js
729
  // 认证的设备信息,可以从发现的结果中获取
730 731 732
  var deviceInfo ={
      "deviceId": "XXXXXXXX",
      "deviceName": "",
733 734 735
      "deviceType": 0x0E,
      "networkId" : "xxxxxxx",
      "range" : 0
736
  };
737 738 739 740 741
  let extraInfo = {
          'targetPkgName': 'ohos.samples.xxx',
          'appName': 'xxx',
          'appDescription': 'xxx',
          'business': '0'
742
  }
743
  let authParam = {
744 745
      'authType': 1,// 认证类型: 1 - 无帐号PIN码认证
      'extraInfo': extraInfo
746
  }
747 748
  try {
    dmInstance.authenticateDevice(deviceInfo, authParam, (err, data) => {
749
      if (err) {
750
          console.error("authenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
751 752
          return;
      }
@
@shi-xiaoxiao-iris 已提交
753 754
      console.info("authenticateDevice result:" + JSON.stringify(data));
      let token = data.pinToken;
755 756
    });
  } catch (err) {
757
    console.error("authenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
758
  }
759 760 761 762 763 764 765 766 767 768
  ```

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

unAuthenticateDevice(deviceInfo: DeviceInfo): void

解除认证设备。

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

@
@shi-xiaoxiao-iris 已提交
769
**参数:**
@
@shi-xiaoxiao-iris 已提交
770

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

@
@shi-xiaoxiao-iris 已提交
775
**错误码:**
@
@shi-xiaoxiao-iris 已提交
776

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

@
@shi-xiaoxiao-iris 已提交
779
| 错误码ID | 错误信息                                                        |
@
@shi-xiaoxiao-iris 已提交
780 781
| -------- | --------------------------------------------------------------- |
| 11600101 | Failed to execute the function.                                 |
@
@shi-xiaoxiao-iris 已提交
782

@
@shi-xiaoxiao-iris 已提交
783
**示例:**
@
@shi-xiaoxiao-iris 已提交
784

785
  ```js
786
  try {
787 788 789 790 791 792 793
    var deviceInfo ={
      "deviceId": "XXXXXXXX",
      "deviceName": "",
      "deviceType": 0x0E,
      "networkId" : "xxxxxxx",
      "range" : 0
    };
794 795
    dmInstance.unAuthenticateDevice(deviceInfo);
  } catch (err) {
796
    console.error("unAuthenticateDevice errCode:" + err.code + ",errMessage:" + err.message);
797
  }
798 799 800 801
  ```

### verifyAuthInfo

802
verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback&lt;{deviceId: string, level: number}&gt;): void
803 804 805 806 807

验证认证信息。

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

@
@shi-xiaoxiao-iris 已提交
808
**参数:**
@
@shi-xiaoxiao-iris 已提交
809

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

@
@shi-xiaoxiao-iris 已提交
815
**示例:**
@
@shi-xiaoxiao-iris 已提交
816

817 818 819
  ```js
  let authInfo = {
    "authType": 1,
820
    "token": 123456,
821 822
    "extraInfo": {}
  }
823 824
  try {
    dmInstance.verifyAuthInfo(authInfo, (err, data) => {
825
    if (err) {
826
        console.error("verifyAuthInfo errCode:" + err.code + ",errMessage:" + err.message);
827 828
        return;
    }
@
@shi-xiaoxiao-iris 已提交
829
    console.info("verifyAuthInfo result:" + JSON.stringify(data));
830 831
    });
  } catch (err) {
832
    console.error("verifyAuthInfo errCode:" + err.code + ",errMessage:" + err.message);
833
  }
834 835
  ```

@
@shi-xiaoxiao-iris 已提交
836
### setUserOperation<sup>9+</sup>
@
@shi-xiaoxiao-iris 已提交
837 838 839 840 841 842 843

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

设置用户ui操作行为。

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

@
@shi-xiaoxiao-iris 已提交
844
**参数:**
@
@shi-xiaoxiao-iris 已提交
845

@
@shi-xiaoxiao-iris 已提交
846
  | 参数名       | 类型            | 必填  | 说明                |
847 848 849
  | ------------- | --------------- | ---- | ------------------- |
  | operateAction | number          | 是    | 用户操作动作。       |
  | params        | string          | 是    | 表示用户的输入参数。 |
@
@shi-xiaoxiao-iris 已提交
850

@
@shi-xiaoxiao-iris 已提交
851
**示例:**
@
@shi-xiaoxiao-iris 已提交
852 853

  ```js
@
@shi-xiaoxiao-iris 已提交
854 855 856 857 858 859 860 861 862 863
 try {
    /*
      operateAction = 0 - 允许授权
      operateAction = 1 - 取消授权
      operateAction = 2 - 授权框用户操作超时
      operateAction = 3 - 取消pin码框展示
      operateAction = 4 - 取消pin码输入框展示
      operateAction = 5 - pin码输入框确定操作
    */
    let operation = 0;
864
    dmInstance.setUserOperation(operation, "extra")
@
@shi-xiaoxiao-iris 已提交
865 866
    } catch (err) {
      console.error("setUserOperation errCode:" + err.code + ",errMessage:" + err.message);
@
@shi-xiaoxiao-iris 已提交
867 868 869
  }
  ```

W
wuqi0105 已提交
870
### requestCredentialRegisterInfo<sup>10+</sup>
W
wuqi0105 已提交
871

W
wuqi0105 已提交
872
requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback<{registerInfo: string}>): void;
W
wuqi0105 已提交
873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892

获取凭据的注册信息。

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

**参数:**

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

**示例:**

  ```js
  let credentialInfo = {
    "version" : "1.2.3",
    "userId" : "123"
  }
  try {
W
wangxuanxuan 已提交
893
    dmInstance.requestCredentialRegisterInfo(credentialInfo, (data) => {
W
wuqi0105 已提交
894
      if (data) {
W
wuqi0105 已提交
895
          console.info("requestCredentialRegisterInfo result:" + JSON.stringify(data));
W
wuqi0105 已提交
896
      } else {
W
wangxuanxuan 已提交
897
          console.info("requestCredentialRegisterInfo result: data is null");
W
wuqi0105 已提交
898 899 900
      }
    });
  } catch (err) {
W
wuqi0105 已提交
901
    console.error("requestCredentialRegisterInfo err:" + err.code + "," + err.message);
W
wuqi0105 已提交
902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943
  }
  ```

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

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

导入凭据信息。

**系统能力**: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 已提交
944
    dmInstance.importCredential(credentialInfo, (data) => {
W
wuqi0105 已提交
945 946 947
      if (data) {
          console.info("importCredential result:" + JSON.stringify(data));
      } else {
W
wangxuanxuan 已提交
948
          console.info("importCredential result: data is null");
W
wuqi0105 已提交
949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979
      }
    });
  } catch (err) {
    console.error("importCredential err:" + err.code + "," + err.message);
  }
  ```

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

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

删除凭据信息。

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

**参数:**

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

**示例:**

  ```js
  let queryInfo = {
    "processType" : 1,
    "authType" : 1,
    "userId" : "123"
  }
  try {
W
wangxuanxuan 已提交
980
    dmInstance.deleteCredential(queryInfo, (data) => {
W
wuqi0105 已提交
981 982 983
      if (data) {
          console.info("deleteCredential result:" + JSON.stringify(data));
      } else {
W
wangxuanxuan 已提交
984
          console.info("deleteCredential result: data is null");
W
wuqi0105 已提交
985 986 987 988 989 990 991
      }
    });
  } catch (err) {
    console.error("deleteCredential err:" + err.code + "," + err.message);
  }
  ```

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

994
on(type: 'uiStateChange', callback: Callback&lt;{ param: string}&gt;): void;
@
@shi-xiaoxiao-iris 已提交
995 996 997 998 999

ui状态变更回调。

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

@
@shi-xiaoxiao-iris 已提交
1000
**参数:**
@
@shi-xiaoxiao-iris 已提交
1001

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

@
@shi-xiaoxiao-iris 已提交
1007
**示例:**
@
@shi-xiaoxiao-iris 已提交
1008 1009 1010

  ```js
  try {
@
@shi-xiaoxiao-iris 已提交
1011
    dmInstance.on('uiStateChange', (data) => {
@
@shi-xiaoxiao-iris 已提交
1012 1013
    console.log("uiStateChange executed, dialog closed" + JSON.stringify(data))
    var tmpStr = JSON.parse(data.param)
1014 1015
    var isShow = tmpStr.verifyFailed
    console.log("uiStateChange executed, dialog closed" + isShow)
@
@shi-xiaoxiao-iris 已提交
1016 1017 1018 1019 1020 1021
  });
  } catch (err) {
    console.error("uiStateChange errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

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

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

1026 1027
取消ui状态变更回调。

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

@
@shi-xiaoxiao-iris 已提交
1030
**参数:**
@
@shi-xiaoxiao-iris 已提交
1031

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

@
@shi-xiaoxiao-iris 已提交
1037
**示例:**
@
@shi-xiaoxiao-iris 已提交
1038 1039 1040

  ```js
  try {
@
@shi-xiaoxiao-iris 已提交
1041
    dmInstance.off('uiStateChange');
@
@shi-xiaoxiao-iris 已提交
1042 1043 1044 1045 1046
  } catch (err) {
    console.error("uiStateChange errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

Z
zengyawen 已提交
1047
### on('deviceStateChange')
Z
zengyawen 已提交
1048

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

Z
zengyawen 已提交
1051 1052
注册设备状态回调。

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

@
@shi-xiaoxiao-iris 已提交
1055
**参数:**
@
@shi-xiaoxiao-iris 已提交
1056

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

@
@shi-xiaoxiao-iris 已提交
1062
**示例:**
@
@shi-xiaoxiao-iris 已提交
1063

1064
  ```js
1065 1066 1067 1068 1069
  try {
    dmInstance.on('deviceStateChange', (data) => {
      console.info("deviceStateChange on:" + JSON.stringify(data));
    });
  } catch (err) {
1070
    console.error("deviceStateChange errCode:" + err.code + ",errMessage:" + err.message);
1071
  }
Z
zengyawen 已提交
1072
  ```
Z
zengyawen 已提交
1073

Z
zengyawen 已提交
1074
### off('deviceStateChange')
Z
zengyawen 已提交
1075

1076
off(type: 'deviceStateChange', callback?: Callback&lt;{ action: DeviceStateChangeAction, device: DeviceInfo }&gt;): void
Z
zengyawen 已提交
1077 1078 1079

取消注册设备状态回调。

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

@
@shi-xiaoxiao-iris 已提交
1082
**参数:**
@
@shi-xiaoxiao-iris 已提交
1083

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

@
@shi-xiaoxiao-iris 已提交
1089
**示例:**
@
@shi-xiaoxiao-iris 已提交
1090

1091
  ```js
1092 1093 1094 1095 1096
  try {
    dmInstance.off('deviceStateChange', (data) => {
      console.info('deviceStateChange' + JSON.stringify(data));
    });
  } catch (err) {
1097
    console.error("deviceStateChange errCode:" + err.code + ",errMessage:" + err.message);
1098
  }
Z
zengyawen 已提交
1099 1100
  ```

1101 1102
### on('deviceFound')

1103
on(type: 'deviceFound', callback: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
1104 1105 1106 1107 1108

注册发现设备回调监听。

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

@
@shi-xiaoxiao-iris 已提交
1109
**参数:**
@
@shi-xiaoxiao-iris 已提交
1110

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

@
@shi-xiaoxiao-iris 已提交
1116
**示例:**
@
@shi-xiaoxiao-iris 已提交
1117

1118
  ```js
1119 1120 1121 1122 1123
  try {
    dmInstance.on('deviceFound', (data) => {
      console.info("deviceFound:" + JSON.stringify(data));
    });
  } catch (err) {
1124
    console.error("deviceFound errCode:" + err.code + ",errMessage:" + err.message);
1125
  }
1126 1127 1128 1129
  ```

### off('deviceFound')

1130
off(type: 'deviceFound', callback?: Callback&lt;{ subscribeId: number, device: DeviceInfo }&gt;): void
1131 1132 1133 1134 1135

取消注册设备发现回调。

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

@
@shi-xiaoxiao-iris 已提交
1136
**参数:**
@
@shi-xiaoxiao-iris 已提交
1137

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

@
@shi-xiaoxiao-iris 已提交
1143
**示例:**
@
@shi-xiaoxiao-iris 已提交
1144

1145
  ```js
1146 1147 1148 1149 1150
  try {
    dmInstance.off('deviceFound', (data) => {
      console.info('deviceFound' + JSON.stringify(data));
    });
  } catch (err) {
1151
    console.error("deviceFound errCode:" + err.code + ",errMessage:" + err.message);
1152
  }
1153 1154 1155 1156
  ```

### on('discoverFail')

1157
on(type: 'discoverFail', callback: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
1158 1159 1160 1161 1162

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

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

@
@shi-xiaoxiao-iris 已提交
1163
**参数:**
@
@shi-xiaoxiao-iris 已提交
1164

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

@
@shi-xiaoxiao-iris 已提交
1170
**示例:**
@
@shi-xiaoxiao-iris 已提交
1171

1172
  ```js
1173 1174
  try {
    dmInstance.on('discoverFail', (data) => {
1175
        console.info("discoverFail on:" + JSON.stringify(data));
1176
    });
1177
  } catch (err) {
1178
    console.error("discoverFail errCode:" + err.code + ",errMessage:" + err.message);
1179
  }
1180 1181 1182 1183
  ```

### off('discoverFail')

1184
off(type: 'discoverFail', callback?: Callback&lt;{ subscribeId: number, reason: number }&gt;): void
1185 1186 1187 1188 1189

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

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

@
@shi-xiaoxiao-iris 已提交
1190
**参数:**
@
@shi-xiaoxiao-iris 已提交
1191

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

@
@shi-xiaoxiao-iris 已提交
1197
**示例:**
@
@shi-xiaoxiao-iris 已提交
1198

1199
  ```js
1200 1201 1202 1203 1204
  try {
    dmInstance.off('discoverFail', (data) => {
      console.info('discoverFail' + JSON.stringify(data));
    });
  } catch (err) {
1205
    console.error("discoverFail errCode:" + err.code + ",errMessage:" + err.message);
1206
  }
1207 1208
  ```

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

1211
on(type: 'publishSuccess', callback: Callback&lt;{ publishId: number }&gt;): void
S
summer8999 已提交
1212 1213 1214 1215 1216

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

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

@
@shi-xiaoxiao-iris 已提交
1217
**参数:**
@
@shi-xiaoxiao-iris 已提交
1218

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

@
@shi-xiaoxiao-iris 已提交
1224

@
@shi-xiaoxiao-iris 已提交
1225
**示例:**
@
@shi-xiaoxiao-iris 已提交
1226

S
summer8999 已提交
1227
  ```js
1228 1229 1230 1231 1232
  try {
    dmInstance.on('publishSuccess', (data) => {
      console.info("publishSuccess:" + JSON.stringify(data));
    });
  } catch (err) {
1233
    console.error("publishSuccess errCode:" + err.code + ",errMessage:" + err.message);
1234
  }
S
summer8999 已提交
1235 1236
  ```

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

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

S
summer8999 已提交
1241
取消注册设备发布成功回调。
S
summer8999 已提交
1242 1243 1244

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

@
@shi-xiaoxiao-iris 已提交
1245
**参数:**
@
@shi-xiaoxiao-iris 已提交
1246

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

@
@shi-xiaoxiao-iris 已提交
1252
**示例:**
@
@shi-xiaoxiao-iris 已提交
1253

S
summer8999 已提交
1254
  ```js
1255 1256 1257 1258 1259
  try {
    dmInstance.off('publishSuccess', (data) => {
      console.info('publishSuccess' + JSON.stringify(data));
    });
  } catch (err) {
1260
    console.error("publishSuccess errCode:" + err.code + ",errMessage:" + err.message);
1261
  }
S
summer8999 已提交
1262 1263
  ```

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

1266
on(type: 'publishFail', callback: Callback&lt;{ publishId: number, reason: number }&gt;): void
S
summer8999 已提交
1267 1268 1269 1270 1271

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

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

@
@shi-xiaoxiao-iris 已提交
1272
**参数:**
@
@shi-xiaoxiao-iris 已提交
1273

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

@
@shi-xiaoxiao-iris 已提交
1279
**示例:**
@
@shi-xiaoxiao-iris 已提交
1280

S
summer8999 已提交
1281
  ```js
1282 1283
  try {
    dmInstance.on('publishFail', (data) => {
1284
      console.info("publishFail on:" + JSON.stringify(data));
1285 1286
    });
  } catch (err) {
1287
    console.error("publishFail errCode:" + err.code + ",errMessage:" + err.message);
1288
  }
S
summer8999 已提交
1289 1290
  ```

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

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

S
summer8999 已提交
1295
取消注册设备发布失败回调。
S
summer8999 已提交
1296 1297 1298

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

@
@shi-xiaoxiao-iris 已提交
1299
**参数:**
@
@shi-xiaoxiao-iris 已提交
1300

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

@
@shi-xiaoxiao-iris 已提交
1306
**示例:**
@
@shi-xiaoxiao-iris 已提交
1307

S
summer8999 已提交
1308
  ```js
1309 1310 1311 1312 1313
  try {
    dmInstance.off('publishFail', (data) => {
      console.info('publishFail' + JSON.stringify(data));
    });
  } catch (err) {
1314
    console.error("publishFail errCode:" + err.code + ",errMessage:" + err.message);
1315
  }
S
summer8999 已提交
1316
  ```
1317

Z
zengyawen 已提交
1318 1319 1320
### on('serviceDie')

on(type: 'serviceDie', callback: () =&gt; void): void
Z
zengyawen 已提交
1321 1322 1323

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

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

@
@shi-xiaoxiao-iris 已提交
1326
**参数:**
@
@shi-xiaoxiao-iris 已提交
1327

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

@
@shi-xiaoxiao-iris 已提交
1333
**示例:**
@
@shi-xiaoxiao-iris 已提交
1334

1335
  ```js
1336 1337 1338 1339 1340
  try {
    dmInstance.on("serviceDie", () => {
      console.info("serviceDie on");
    });
  } catch (err) {
1341
    console.error("serviceDie errCode:" + err.code + ",errMessage:" + err.message);
1342
  }
Z
zengyawen 已提交
1343
  ```
Z
zengyawen 已提交
1344

Z
zengyawen 已提交
1345 1346 1347 1348 1349
### off('serviceDie')

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

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

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

@
@shi-xiaoxiao-iris 已提交
1353
**参数:**
@
@shi-xiaoxiao-iris 已提交
1354

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

@
@shi-xiaoxiao-iris 已提交
1360
**示例:**
@
@shi-xiaoxiao-iris 已提交
1361

1362
  ```js
1363 1364 1365 1366 1367
  try {
    dmInstance.off("serviceDie", () => {
      console.info("serviceDie off");
    });
  } catch (err) {
1368
    console.error("serviceDie errCode:" + err.code + ",errMessage:" + err.message);
1369
  }
1370
  ```