# @ohos.distributedDeviceManager (Device Management) (System API)
The **distributedDeviceManager** module provides APIs for distributed device management.
Applications can call the APIs to:
- Subscribe to or unsubscribe from device state changes.
- Discover devices nearby.
- Authenticate or deauthenticate a device.
- Query the trusted device list.
- Query local device information, including the device name, type, and ID.
> **NOTE**
>
> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. This topic describes only the system APIs provided by the module. For details about its public APIs, see [@ohos.distributedDeviceManager](js-apis-distributedDeviceManager.md).
## Modules to Import
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
```
## StrategyForHeartbeat15+
Defines the heartbeat broadcast policy.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Value | Description |
| ----------- | ---- | --------------- |
| TEMP_STOP_HEARTBEAT | 100 | Stops the heartbeat broadcast temporarily, and resumes it upon timeout expiration. |
| START_HEARTBEAT | 101 | Starts heartbeat broadcast. |
## DeviceProfileInfoFilterOptions15+
Defines device profile information filter options.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Type | Read-Only| Optional | Description |
| ----------- | ---- | -- | --- |--------------- |
| isCloud | boolean | No| No | Whether to obtain the device list from the cloud in real time.
- **false**: Obtain the device list from the device.
- **true**: Obtain the device list from the cloud. |
| deviceIdList | Array<string> | No| Yes | Device ID. The device ID is usually the UDID of the device. If the device does not have a UDID, the MAC address or SN of the device is used as the device ID. This parameter is left unspecified by default. |
## ServiceProfileInfo15+
Defines the service profile information. It is populated based on the data returned from the cloud.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Type | Read Only| Optional | Description |
| -------------- | ---- | --------| ------- | --------|
| deviceId | string | No| No | Device ID. |
| serviceId | string | No|No | Service ID. |
| serviceType | string | No| No | Service type. |
| data | string | No| Yes | Service data. The value is a string of up to 1000 characters. This parameter is left unspecified by default. |
## DeviceProfileInfo15+
Defines the device profile information.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Type | Read-Only |Optional | Description |
| -------------- | ---- | ---| --------------- | --------|
| deviceId | string | No | No | Device ID. |
| deviceSn | string | No | No | Device SN. |
| mac | string | No | No | MAC address. |
| model | string | No | No | Device model. |
| deviceType | string | No | No | Device type. |
| manufacturer | string | No | No | Manufacturer. |
| deviceName | string | No | No | Device name. |
| productId | string | No | No | Product ID. |
| subProductId | string | No | Yes | Sub-product ID. This parameter is left unspecified by default. |
| sdkVersion | string | No | No | SDK version. |
| bleMac | string | No | No | Bluetooth BLE MAC address. |
| brMac | string | No | No | Bluetooth BR MAC address. |
| sleMac | string | No | No | Starflash MAC address.|
| firmwareVersion | string | No | No | Firmware version. |
| hardwareVersion | string | No | No | Hardware version. |
| softwareVersion | string | No | No | Software version. |
| protocolType | number | No | No | Protocol type. |
| setupType | number | No | No | Device type. |
| wiseDeviceId | string | No | No | Registered device ID. |
| wiseUserId | string | No | No | Registered user ID. |
| registerTime | string | No | No | Registration time. |
| modifyTime | string | No | No | Modification time. |
| shareTime | string | No | No | Share time. |
| isLocalDevice | boolean | No | No| Whether the device is a local device.
- **false**: non-local device.
- **true**: local device. |
| services | Array<[ServiceProfileInfo](#serviceprofileinfo15)> | No | Yes | Service list. This parameter is left unspecified by default.|
| productName18+ | string | No | Yes| Product name. This parameter is left unspecified by default. |
| internalModel18+ | string | No | Yes| Internal product model. This parameter is left unspecified by default.|
## DeviceIconInfoFilterOptions18+
Defines the device icon information filter options.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Type | Read-Only| Optional | Description |
| -------------- | ---- | -------| -------- | --------|
| productId | string | No| No | Product ID. |
| subProductId | string | No| Yes | Sub-product ID. This parameter is left unspecified by default. |
| imageType | string | No| No | Image type. This parameter has a fixed value of **ID**, indicating the product's physical image.|
| specName | string | No| No | Image specification name. Value:
- **lg**: large image (size: 1016064 pixels)
- **sm**: small image (size: 65536 pixels) |
| internalModel | string | No| Yes | Internal product model. This parameter is left unspecified by default. |
## DeviceIconInfo18+
Defines the device icon information.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Type | Read-Only |Optional | Description |
| -------------- | ---- | ------| --------- | --------|
| productId | string | No| No | Product ID. |
| subProductId | string | No| Yes | Sub-product ID. This parameter is left unspecified by default. |
| imageType | string | No| No | Image type. This parameter has a fixed value of **ID**, indicating the product's physical image. |
| specName | string | No| No | Image specification name. Value:
- **lg**: large image (size: 1016 x 64 pixels)
- **sm**: small image (size: 655 x 36 pixels) |
| url | string | No| No | URL. |
| icon | ArrayBuffer | No| No| Icon. |
| internalModel | string | No| Yes | Internal product model. This parameter is left unspecified by default. |
## NetworkIdQueryFilter18+
Defines the network ID filter options.
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
| Name | Type | Read-Only| Optional | Description |
| -------------- | ---- | ------ | --------- | --------|
| wiseDeviceId | string | No| No | Registered device ID. |
| onlineStatus | number | No| No | Device online status.
- **0**: The device is offline.
- **1**: The device is online. |
## DeviceManager
Provides APIs to obtain information about trusted devices and local devices. Before calling any API in **DeviceManager**, you must use **createDeviceManager** to create a **DeviceManager** instance, for example, **dmInstance**.
### replyUiAction
replyUiAction(action: number, actionResult: string): void
Replies to the user's UI operation. This API can be used only by the PIN HAP of the **deviceManager**.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| action | number | Yes | User operation.
- **0**: Grant the permission.
- **1**. Remove the permission.
- **2**: Time out the user operation in the permission request dialog.
- **3**: Cancel the display of the PIN box.
- **4**: Cancel the display of the PIN input box.
- **5**: Confirm the input in the PIN input box. |
| actionResult | string | Yes | User operation result. The value is a string of 1 to 255 characters.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; 4. The size of specified actionResult is greater than 255. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
/*
action = 0 - Grant the permission.
action = 1 - Revoke the permission.
action = 2 - Time out the user operation in the permission request dialog.
action = 3 - Cancel the display of the PIN box.
action = 4 - Cancel the display of the PIN input box.
action = 5 - Confirm the input in the PIN input box.
*/
let operation = 0;
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.replyUiAction(operation, 'extra');
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('replyUiAction errCode:' + e.code + ',errMessage:' + e.message);
}
```
### on('replyResult')
on(type: 'replyResult', callback: Callback<{ param: string;}>): void
Subscribes to the reply to the UI operation result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------ | ---- | ------------------------------ |
| type | string | Yes | Event type, which has a fixed value of **replyResult**.|
| callback | Callback<{ param: string;}> | Yes | Callback invoked to return the UI status change. |
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; 4. The size of specified type is greater than 255. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
class Data {
param: string = '';
}
interface TmpStr {
verifyFailed: boolean;
}
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.on('replyResult', (data: Data) => {
console.info('replyResult executed, dialog closed' + JSON.stringify(data));
let tmpStr: TmpStr = JSON.parse(data.param);
let isShow = tmpStr.verifyFailed;
console.info('replyResult executed, dialog closed' + isShow);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('replyResult errCode:' + e.code + ',errMessage:' + e.message);
}
```
### off('replyResult')
off(type: 'replyResult', callback?: Callback<{ param: string;}>): void
Unsubscribes from the reply to the UI operation result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------- | ---- | ------------------------------ |
| type | string | Yes | Event type, which has a fixed value of **replyResult**.|
| callback | Callback<{ param: string;}> | No | Callback to unregister.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; 4. The size of specified type is greater than 255. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.off('replyResult');
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('replyResult errCode:' + e.code + ',errMessage:' + e.message);
}
```
### setHeartbeatPolicy15+
setHeartbeatPolicy(policy: StrategyForHeartbeat, delayTime: number): void
Sets the heartbeat broadcast policy.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| policy | [StrategyForHeartbeat](#strategyforheartbeat15) | Yes | Heartbeat broadcast policy. |
| delayTime | number | Yes | Duration for temporarily disabling heartbeat broadcast. The value ranges from 1000 to 15000, in milliseconds. |
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 11600102 | Failed to obtain service. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let policy = distributedDeviceManager.StrategyForHeartbeat.TEMP_STOP_HEARTBEAT;
let delayTime = 1000;
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.setHeartbeatPolicy(policy, delayTime);
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('setHeartbeatPolicy errCode:' + e.code + ',errMessage:' + e.message);
}
```
### getDeviceProfileInfoList15+
getDeviceProfileInfoList(filterOptions: DeviceProfileInfoFilterOptions): Promise<Array<DeviceProfileInfo>>
Obtains the list of devices under the same account. This API uses a promise to return the result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| filterOptions | [DeviceProfileInfoFilterOptions](#deviceprofileinfofilteroptions15) | Yes | Filter options. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| Promise<Array<[DeviceProfileInfo](#deviceprofileinfo15)>> | Promise used to return the device list.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; 4. The size of specified type is greater than 500. |
| 11600102 | Failed to obtain service. |
| 11600106 | Get data from cloud fail. |
| 11600107 | A login account is required. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.getDeviceProfileInfoList({"isCloud": false}).then((data: Array) => {
console.info('getDeviceProfileInfoList' + JSON.stringify(data));
}).catch((e: BusinessError) => {
console.error('getDeviceProfileInfoList errCode:' + e.code + ',errMessage:' + e.message);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('getDeviceProfileInfoList errCode:' + e.code + ',errMessage:' + e.message);
}
```
### putDeviceProfileInfoList18+
putDeviceProfileInfoList(deviceProfileInfoList: Array<DeviceProfileInfo>): Promise<number>
Updates the device list. This API uses a promise to return the result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| deviceProfileInfoList | Array<[DeviceProfileInfo](#deviceprofileinfo15)> | Yes | Device list. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| number | Operation result. The value **0** indicates that the operation is successful. |
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; 4. The size of specified type is greater than 500. |
| 11600102 | Failed to obtain service. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
let deviceProfileInfoList:Array = [];
dmInstance.putDeviceProfileInfoList(deviceProfileInfoList).then((data:number) => {
console.info('put device profile info:' + JSON.stringify(data));
}).catch((e: BusinessError) => {
console.error('putDeviceProfileInfoList errCode:' + e.code + ',errMessage:' + e.message);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('putDeviceProfileInfoList errCode:' + e.code + ',errMessage:' + e.message);
}
```
### getDeviceIconInfo18+
getDeviceIconInfo(filterOptions: DeviceIconInfoFilterOptions): Promise<DeviceIconInfo>
Obtains the device icon. This API uses a promise to return the result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| filterOptions | [DeviceIconInfoFilterOptions](#deviceiconinfofilteroptions18) | Yes | Filter options. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| Promise<[DeviceIconInfo](#deviceiconinfo18)> | Promise used to return the device icon information. |
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; |
| 11600102 | Failed to obtain service. |
| 11600106 | Get data from cloud fail. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
let productIds:Array = ['M0D2', 'M0D3', 'M0D5', 'M0AB', 'M0BD', 'M0E9', 'M0BC', 'M0EA'];
let options:distributedDeviceManager.DeviceIconInfoFilterOptions = {
productId: 'P14U',
imageType: 'ID',
specName: 'lg',
};
if (productIds.indexOf(options.productId) != -1) {
options.internalModel = '';
} else {
options.subProductId = '';
}
dmInstance.getDeviceIconInfo(options).then((data: distributedDeviceManager.DeviceIconInfo) => {
console.info('getDeviceIconInfo' + JSON.stringify(data));
}).catch((e : BusinessError) => {
console.error('getDeviceIconInfo errCode:' + e.code + ',errMessage:' + e.message);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('getDeviceIconInfo errCode:' + e.code + ',errMessage:' + e.message);
}
```
### getLocalDisplayDeviceName18+
getLocalDisplayDeviceName(maxNameLength: number): Promise<string>
Obtains the local device's display name with the specified length. This API uses a promise to return the result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| maxNameLength | number | Yes | Length of the local device's display name, in bytes. The value range is [18, 100]. If the value is **0**, the length is not limited. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| string | Maximum number of bytes in the local device's display name.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; |
| 11600102 | Failed to obtain service. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
let maxNameLength:number = 21;
dmInstance.getLocalDisplayDeviceName(maxNameLength).then((data:string)=>{
console.info('getLocalDisplayDeviceName name:' + JSON.stringify(data));
}).catch((e: BusinessError)=>{
console.error('getLocalDisplayDeviceName errCode:' + e.code + ',errMessage:' + e.message);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('getLocalDisplayDeviceName errCode:' + e.code + ',errMessage:' + e.message);
}
```
### setLocalDeviceName18+
setLocalDeviceName(deviceName: string): Promise<number>
Sets the local device name. This API uses a promise to return the result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| deviceName | string | Yes | Device name to set. The value is a string of 1 to 255 characters. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| number | Operation result. The value **0** indicates that the operation is successful.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; |
| 11600102 | Failed to obtain service. |
| 11600106 | Failed to get data from the cloud. |
| 11600107 | A login account is required. |
| 11600108 | The device name contains non-compliant content. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
let deviceName:string = 'xxx';
dmInstance.setLocalDeviceName(deviceName).then((data:number)=>{
console.info('setLocalDeviceName name:' + JSON.stringify(data));
}).catch((e: BusinessError)=>{
console.error('setLocalDeviceName errCode:' + e.code + ',errMessage:' + e.message);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('setLocalDeviceName errCode:' + e.code + ',errMessage:' + e.message);
}
```
### setRemoteDeviceName18+
setRemoteDeviceName(deviceId: string, deviceName: string): Promise<number>
Sets the remote device name. This API uses a promise to return the result.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| deviceId | string | Yes | UDID of the remote device. If the device does not have a UDID, the MAC address or SN of the device is used as the device ID. The SN is used preferentially. |
| deviceName | string | Yes | Device name to set. The value is a string of 1 to 255 characters. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| number | Operation result. The value **0** indicates that the operation is successful.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter type; 3. Parameter verification failed; |
| 11600102 | Failed to obtain service. |
| 11600106 | Failed to get data from the cloud. |
| 11600107 | A login account is required. |
| 11600108 | The device name contains non-compliant content. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
let deviceId:string = 'xxx';
let deviceName:string = 'xxx';
dmInstance.setRemoteDeviceName(deviceId, deviceName).then((data:number)=>{
console.info('setRemoteDeviceName name:' + JSON.stringify(data));
}).catch((e: BusinessError)=>{
console.error('setRemoteDeviceName errCode:' + e.code + ',errMessage:' + e.message);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('setRemoteDeviceName errCode:' + e.code + ',errMessage:' + e.message);
}
```
### restoreLocalDeivceName18+
restoreLocalDeivceName(): void
Restores the local device name by resetting the network settings.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 11600102 | Failed to obtain the service. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.restoreLocalDeivceName();
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('restoreLocalDeivceName errCode:' + e.code + ',errMessage:' + e.message);
}
```
### getDeviceNetworkIdList18+
getDeviceNetworkIdList(filterOptions: NetworkIdQueryFilter): Promise<Array<string>>
Obtains the list of network devices according to the specified filter options.
**Required permissions**: ohos.permission.ACCESS_SERVICE_DM
**System capability**: SystemCapability.DistributedHardware.DeviceManager
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| ------------- | --------------- | ---- | ------------------- |
| filterOptions | [NetworkIdQueryFilter](#networkidqueryfilter18) | Yes | Filter options. |
**Returns**
| Type | Description |
| ---------------------------------------------------------- | ---------------------------------- |
| Promise<Array<string>> | Promise used to return the device list.|
**Error codes**
For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Device Management Error Codes](errorcode-device-manager.md).
| ID| Error Message |
| -------- | --------------------------------------------------------------- |
| 201 | Permission verification failed. The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed; |
| 11600102 | Failed to obtain service. |
| 11600107 | A login account is required. |
**Example**
```ts
import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let queryFiler: distributedDeviceManager.NetworkIdQueryFilter = {
wiseDeviceId: '',
onlineStatus: 1,
}
let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
dmInstance.getDeviceNetworkIdList(queryFiler).then((data:Array) => {
console.info('getDeviceNetworkIdList name:' + JSON.stringify(data));
}).catch((e: BusinessError) => {
console.error('getDeviceNetworkIdList errCode:' + e.code + ',errMessage:' + e.message);
})
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error('getDeviceNetworkIdList errCode:' + e.code + ',errMessage:' + e.message);
}
```