• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_DEVICE_MANAGER_H
17 #define OHOS_DEVICE_MANAGER_H
18 
19 #include "device_manager_callback.h"
20 #include "dm_publish_info.h"
21 
22 namespace OHOS {
23 namespace DistributedHardware {
24 class DeviceManager {
25 public:
26     static DeviceManager &GetInstance();
27 
28 public:
29     /**
30      * @brief Initialize DeviceManager.
31      * @param pkgName        package name.
32      * @param dmInitCallback the callback to be invoked upon InitDeviceManager.
33      * @return Returns 0 if success.
34      */
35     virtual int32_t InitDeviceManager(const std::string &pkgName, std::shared_ptr<DmInitCallback> dmInitCallback) = 0;
36     /**
37      * @brief UnInitialize DeviceManager.
38      * @param pkgName package name.
39      * @return Returns 0 if success.
40      */
41     virtual int32_t UnInitDeviceManager(const std::string &pkgName) = 0;
42     /**
43      * @brief Get device info list of trusted devices.
44      * @param pkgName    package name.
45      * @param extra      extra info.This parameter can be null.
46      * @param deviceList device info list.
47      * @return Returns a list of trusted devices.
48      */
49     virtual int32_t GetTrustedDeviceList(const std::string &pkgName, const std::string &extra,
50         std::vector<DmDeviceInfo> &deviceList) = 0;
51     /**
52      * @brief Get device info list of trusted devices.
53      * @param pkgName    package name.
54      * @param extra      extra info.This parameter can be null.
55      * @param isRefresh  refresh the list quickly.
56      * @param deviceList device info list.
57      * @return Returns a list of trusted devices.
58      */
59     virtual int32_t GetTrustedDeviceList(const std::string &pkgName, const std::string &extra,
60         bool isRefresh, std::vector<DmDeviceInfo> &deviceList) = 0;
61 	/**
62      * @brief Get device info list of available devices.
63      * @param pkgName    package name.
64      * @param extra      extra info.This parameter can be null.
65      * @param deviceList device info list.
66      * @return Returns a list of available devices.
67      */
68     virtual int32_t GetAvailableDeviceList(const std::string &pkgName,
69         std::vector<DmDeviceBasicInfo> &deviceList) = 0;
70     /**
71      * @brief Get local device information.
72      * @param pkgName    package name.
73      * @param deviceInfo device info.
74      * @return Returns local device info.
75      */
76     virtual int32_t GetLocalDeviceInfo(const std::string &pkgName, DmDeviceInfo &deviceInfo) = 0;
77     /**
78      * @tc.name: DeviceManagerImpl::GetDeviceInfo
79      * @tc.desc: Get local device information by networkId
80      * @tc.type: FUNC
81      */
82     virtual int32_t GetDeviceInfo(const std::string &pkgName, const std::string networkId,
83         DmDeviceInfo &deviceInfo) = 0;
84     /**
85      * @brief Register device status callback.
86      * @param pkgName  package name.
87      * @param extra    extra info.This parameter can be null.
88      * @param callback device state callback.
89      * @return Returns 0 if success.
90      */
91     virtual int32_t RegisterDevStateCallback(const std::string &pkgName, const std::string &extra,
92         std::shared_ptr<DeviceStateCallback> callback) = 0;
93     /**
94      * @brief Register device status callback.
95      * @param pkgName  package name.
96      * @param callback device status callback.
97      * @return Returns 0 if success.
98      */
99     virtual int32_t RegisterDevStatusCallback(const std::string &pkgName, const std::string &extra,
100         std::shared_ptr<DeviceStatusCallback> callback) = 0;
101     /**
102      * @brief Unregister device status callback.
103      * @param pkgName package name.
104      * @return Returns 0 if success.
105      */
106     virtual int32_t UnRegisterDevStateCallback(const std::string &pkgName) = 0;
107     /**
108      * @brief Unregister device status callback.
109      * @param pkgName package name.
110      * @return Returns 0 if success.
111      */
112     virtual int32_t UnRegisterDevStatusCallback(const std::string &pkgName) = 0;
113     /**
114      * @brief Initiate device discovery.
115      * @param pkgName       package name.
116      * @param subscribeInfo subscribe info to discovery device.
117      * @param extra         extra info.This parameter can be null.
118      * @param callback      discovery callback.
119      * @return Returns 0 if success.
120      */
121     virtual int32_t StartDeviceDiscovery(const std::string &pkgName, const DmSubscribeInfo &subscribeInfo,
122         const std::string &extra, std::shared_ptr<DiscoveryCallback> callback) = 0;
123     /**
124      * @brief Initiate device discovery.
125      * @param pkgName       package name.
126      * @param subscribeId subscribe id to discovery device.
127      * @param extra         extra info.This parameter can be null.
128      * @param callback      discovery callback.
129      * @return Returns 0 if success.
130      */
131     virtual int32_t StartDeviceDiscovery(const std::string &pkgName, uint64_t tokenId,
132         const std::string &filterOptions, std::shared_ptr<DiscoveryCallback> callback) = 0;
133     /**
134      * @brief Stop device discovery.
135      * @param pkgName       package name.
136      * @param subscribeInfo subscribe info to discovery device.
137      * @return Returns 0 if success.
138      */
139     virtual int32_t StopDeviceDiscovery(const std::string &pkgName, uint16_t subscribeId) = 0;
140     /**
141      * @brief Stop device discovery.
142      * @param pkgName package name.
143      * @param tokenId app flag to discovery device.
144      * @return Returns 0 if success.
145      */
146     virtual int32_t StopDeviceDiscovery(uint64_t tokenId, const std::string &pkgName) = 0;
147     /**
148      * @brief Publish device discovery.
149      * @param pkgName     package name.
150      * @param publishInfo publish info to Publish discovery device.
151      * @param callback    the callback to be invoked upon PublishDeviceDiscovery.
152      * @return Returns 0 if success.
153      */
154     virtual int32_t PublishDeviceDiscovery(const std::string &pkgName, const DmPublishInfo &publishInfo,
155         std::shared_ptr<PublishCallback> callback) = 0;
156     /**
157      * @brief UnPublish device discovery.
158      * @param pkgName   package name.
159      * @param publishId service publish ID, identify a publish operation, should be a unique id in package range.
160      * @return Returns 0 if success.
161      */
162     virtual int32_t UnPublishDeviceDiscovery(const std::string &pkgName, int32_t publishId) = 0;
163     /**
164      * @brief Authenticate the specified device.
165      * @param pkgName    package name.
166      * @param authType   authType of device to authenticate.
167      * @param deviceInfo deviceInfo of device to authenticate.
168      * @param extra      extra info.This parameter can be null.
169      * @param callback   the callback to be invoked upon AuthenticateDevice.
170      * @return Returns 0 if success.
171      */
172     virtual int32_t AuthenticateDevice(const std::string &pkgName, int32_t authType, const DmDeviceInfo &deviceInfo,
173         const std::string &extra, std::shared_ptr<AuthenticateCallback> callback) = 0;
174     /**
175      * @brief Cancel complete verification of device.
176      * @param pkgName    package name.
177      * @param deviceInfo deviceInfo of device to authenticate.
178      * @return Returns 0 if success.
179      */
180     virtual int32_t UnAuthenticateDevice(const std::string &pkgName, const DmDeviceInfo &deviceInfo) = 0;
181     /**
182      * @brief Verify device authentication.
183      * @param pkgName  package name.
184      * @param authPara authPara of device to authenticate.
185      * @param callback the callback to be invoked upon VerifyAuthentication.
186      * @return Returns 0 if success.
187      */
188     [[deprecated]] virtual int32_t VerifyAuthentication(const std::string &pkgName, const std::string &authPara,
189         std::shared_ptr<VerifyAuthCallback> callback) = 0;
190     /**
191      * @brief Register Fa callback for device manager.
192      * @param pkgName  package name.
193      * @param callback device manager Fa callback.
194      * @return Returns 0 if success.
195      */
196     virtual int32_t RegisterDeviceManagerFaCallback(const std::string &pkgName,
197         std::shared_ptr<DeviceManagerUiCallback> callback) = 0;
198     /**
199      * @brief Unregister Fa callback for device manager.
200      * @param pkgName package name.
201      * @return Returns 0 if success.
202      */
203     virtual int32_t UnRegisterDeviceManagerFaCallback(const std::string &pkgName) = 0;
204     /**
205      * @brief Get Fa Param.
206      * @param pkgName package name.
207      * @param faParam fa param.
208      * @return Returns 0 if success.
209      */
210     [[deprecated]] virtual int32_t GetFaParam(const std::string &pkgName, DmAuthParam &faParam) = 0;
211     /**
212      * @brief Set User Actions.
213      * @param pkgName package name.
214      * @param action  user operation action.
215      * @param params  indicates the input param of the user.
216      * @return Returns 0 if success.
217      */
218     virtual int32_t SetUserOperation(const std::string &pkgName, int32_t action, const std::string &params) = 0;
219     /**
220      * @brief Get Udid by NetworkId.
221      * @param pkgName   package name.
222      * @param netWorkId netWork Id.
223      * @param udid      unique device id.
224      * @return Returns 0 if success.
225      */
226     virtual int32_t GetUdidByNetworkId(const std::string &pkgName, const std::string &netWorkId, std::string &udid) = 0;
227     /**
228      * @brief Get Uuid by NetworkId.
229      * @param pkgName   package name.
230      * @param netWorkId netWork Id.
231      * @param uuid      universally unique id.
232      * @return Returns 0 if success.
233      */
234     virtual int32_t GetUuidByNetworkId(const std::string &pkgName, const std::string &netWorkId, std::string &uuid) = 0;
235     /**
236      * @brief Unregister device status callback.
237      * @param pkgName package name.
238      * @param extra   extra info.This parameter can be null.
239      * @return Returns 0 if success.
240      */
241     [[deprecated]] virtual int32_t RegisterDevStateCallback(const std::string &pkgName,
242         const std::string &extra) = 0;
243     /**
244      * @brief Unregister device status callback.
245      * @param pkgName package name.
246      * @param extra   extra info.This parameter can be null.
247      * @return Returns 0 if success.
248      */
249     [[deprecated]] virtual int32_t UnRegisterDevStateCallback(const std::string &pkgName,
250         const std::string &extra) = 0;
251     /**
252      * @brief Request credential information.
253      * @param pkgName       package name.
254      * @param reqJsonStr    request credential params, the params is json string, it includes version and userId.
255      * @param returnJsonStr return json string, it includes deviceId, devicePk, useId and version.
256      * @return Returns 0 if success.
257      */
258     [[deprecated]] virtual int32_t RequestCredential(const std::string &pkgName, const std::string &reqJsonStr,
259         std::string &returnJsonStr) = 0;
260     /**
261      * @brief Import credential information.
262      * @param pkgName        package name.
263      * @param credentialInfo import credential params, the params is json string, it includes processType, authType,
264      * userId, deviceId, version, devicePk and credentialData, the credentialData is array, each array element
265      * includes credentialType, credentialId, serverPk, pkInfoSignature, pkInfo, authCode, peerDeviceId.
266      * @return Returns 0 if success.
267      */
268     [[deprecated]] virtual int32_t ImportCredential(const std::string &pkgName,
269         const std::string &credentialInfo) = 0;
270     /**
271      * @brief Delete credential information.
272      * @param pkgName    package name.
273      * @param deleteInfo delete credential params. the params is json string, it includes processType, authType, userId.
274      * @return Returns 0 if success.
275      */
276     [[deprecated]] virtual int32_t DeleteCredential(const std::string &pkgName, const std::string &deleteInfo) = 0;
277     /**
278      * @brief Register credential callback.
279      * @param pkgName  package name.
280      * @param callback credential callback.
281      * @return Returns 0 if success.
282      */
283     [[deprecated]] virtual int32_t RegisterCredentialCallback(const std::string &pkgName,
284         std::shared_ptr<CredentialCallback> callback) = 0;
285     /**
286      * @brief UnRegister credential callback.
287      * @param pkgName package name.
288      * @return Returns 0 if success.
289      */
290     [[deprecated]] virtual int32_t UnRegisterCredentialCallback(const std::string &pkgName) = 0;
291     /**
292      * @brief Notify event to device manager.
293      * @param pkgName package name.
294      * @param event   event info.
295      * @param event   event string.
296      * @return Returns 0 if success.
297      */
298     virtual int32_t NotifyEvent(const std::string &pkgName, const int32_t eventId, const std::string &event) = 0;
299 
300     /**
301      * @brief Get encrypted uuid.
302      * @param networkId device networkId.
303      * @return Returns encrypted uuid.
304      */
305     virtual int32_t GetEncryptedUuidByNetworkId(const std::string &pkgName, const std::string &networkId,
306         std::string &uuid) = 0;
307 
308     /**
309      * @brief Get encrypted uuid.
310      * @param uuid device uuid.
311      * @param tokenId tokenId.
312      * @return Returns encrypted uuid.
313      */
314     virtual int32_t GenerateEncryptedUuid(const std::string &pkgName, const std::string &uuid, const std::string &appId,
315         std::string &encryptedUuid) = 0;
316 
317     /**
318      * @tc.name: DeviceManagerImpl::CheckAPIAccessPermission
319      * @tc.desc: check permission for device manager API
320      * @tc.type: FUNC
321      */
322     virtual int32_t CheckAPIAccessPermission() = 0;
323 
324     /**
325      * @brief Get local device netWorkId.
326      * @param pkgName package name.
327      * @return Returns local device networkId.
328      */
329     virtual int32_t GetLocalDeviceNetWorkId(const std::string &pkgName, std::string &networkId) = 0;
330 
331     /**
332      * @brief Get local deviceId.
333      * @param pkgName package name.
334      * @return Returns local deviceId.
335      */
336     virtual int32_t GetLocalDeviceId(const std::string &pkgName, std::string &networkId) = 0;
337 
338     /**
339      * @brief Get local device name.
340      * @param pkgName package name.
341      * @return Returns device name.
342      */
343     virtual int32_t GetLocalDeviceName(const std::string &pkgName, std::string &deviceName) = 0;
344 
345     /**
346      * @brief Get local device type.
347      * @param pkgName package name.
348      * @return Returns device type.
349      */
350     virtual int32_t GetLocalDeviceType(const std::string &pkgName, int32_t &deviceType) = 0;
351 
352     /**
353      * @brief Get device name.
354      * @param pkgName package name.
355      * @param networkId device networkId.
356      * @return Returns device name.
357      */
358     virtual int32_t GetDeviceName(const std::string &pkgName, const std::string &networkId,
359         std::string &deviceName) = 0;
360 
361     /**
362      * @brief Get device type.
363      * @param pkgName package name.
364      * @param networkId device networkId.
365      * @return Returns device type.
366      */
367     virtual int32_t GetDeviceType(const std::string &pkgName, const std::string &networkId, int32_t &deviceType) = 0;
368 
369     /**
370      * @brief Bind the specified device.
371      * @param pkgName    package name.
372      * @param bindType   bindType of device to bind.
373      * @param deviceInfo device id of device to bind.
374      * @param extra      extra info.This parameter can be null.
375      * @param callback   callback.
376      * @return Returns 0 if success.
377      */
378     virtual int32_t BindDevice(const std::string &pkgName, int32_t bindType, const std::string &deviceId,
379         const std::string &extra, std::shared_ptr<AuthenticateCallback> callback) = 0;
380 
381     /**
382      * @brief UnBind the specified device.
383      * @param pkgName    package name.
384      * @param deviceId device id to UnBindDevice.
385      * @return Returns 0 if success.
386      */
387     virtual int32_t UnBindDevice(const std::string &pkgName, const std::string &deviceId) = 0;
388 
389     virtual int32_t UnBindDevice(const std::string &pkgName, const std::string &deviceId, const std::string &extra) = 0;
390 
391     virtual int32_t CheckNewAPIAccessPermission() = 0;
392 
393     /**
394      * @brief Get Network Type by NetworkId.
395      * @param pkgName   package name.
396      * @param netWorkId netWork Id.
397      * @param netWorkType netWork Type.
398      * @return Returns 0 if success.
399      */
400     virtual int32_t GetNetworkTypeByNetworkId(const std::string &pkgName,
401         const std::string &netWorkId, int32_t &netWorkType) = 0;
402 
403     /**
404      * @brief Import Auth Code.
405      * @param pkgName  BindDevice caller package name.
406      * @param authCode  Authentication code.
407      * @return Returns 0 if success.
408      */
409     virtual int32_t ImportAuthCode(const std::string &pkgName, const std::string &authCode) = 0;
410 
411     /**
412      * @brief Export Auth Code.
413      * @param authCode  Authentication code.
414      * @return Returns 0 if success.
415      */
416     virtual int32_t ExportAuthCode(std::string &authCode) = 0;
417 
418     // The following interfaces are provided since OpenHarmony 4.1 Version.
419     /**
420      * @brief Start to discover nearby devices or services.
421      * @param pkgName       package name.
422      * @param discoverParam discover parameters.
423      * @param filterOptions filter option parameters.
424      * @param callback      discovery callback.
425      * @return Returns 0 if success.
426      */
427     virtual int32_t StartDiscovering(const std::string &pkgName, std::map<std::string, std::string> &discoverParam,
428         const std::map<std::string, std::string> &filterOptions, std::shared_ptr<DiscoveryCallback> callback) = 0;
429 
430     /**
431      * @brief Stop discovering nearby devices or services.
432      * @param pkgName       package name.
433      * @param discoverParam discover parameters.
434      * @return Returns 0 if success.
435      */
436     virtual int32_t StopDiscovering(const std::string &pkgName, std::map<std::string, std::string> &discoverParam) = 0;
437 
438     /**
439      * @brief Registerthe discovery callback.
440      * @param pkgName       package name.
441      * @param discoverParam discover parameters.
442      * @param filterOptions filter option parameters.
443      * @param callback      discovery callback.
444      * @return Returns 0 if success.
445      */
446     virtual int32_t RegisterDiscoveryCallback(const std::string &pkgName,
447         std::map<std::string, std::string> &discoverParam, const std::map<std::string, std::string> &filterOptions,
448         std::shared_ptr<DiscoveryCallback> callback) = 0;
449 
450     /**
451      * @brief UnRegisterthe discovery callback.
452      * @param pkgName       package name.
453      * @return Returns 0 if success.
454      */
455     virtual int32_t UnRegisterDiscoveryCallback(const std::string &pkgName) = 0;
456 
457     /**
458      * @brief Start to advertise the nearby devices or services.
459      * @param pkgName        package name.
460      * @param advertiseParam advertise parameters.
461      * @param callback       advertise callback.
462      * @return Returns 0 if success.
463      */
464     virtual int32_t StartAdvertising(const std::string &pkgName, std::map<std::string, std::string> &advertiseParam,
465         std::shared_ptr<PublishCallback> callback) = 0;
466 
467     /**
468      * @brief Stop to advertise the nearby devices or services.
469      * @param pkgName        package name.
470      * @param advertiseParam advertise parameters.
471      * @return Returns 0 if success.
472      */
473     virtual int32_t StopAdvertising(const std::string &pkgName, std::map<std::string, std::string> &advertiseParam) = 0;
474 
475     /**
476      * @brief Bind the specified target.
477      * @param pkgName    package name.
478      * @param targetId   id of target to bind.
479      * @param bindParam  bind parameters.
480      * @param callback   bind result callback.
481      * @return Returns 0 if success.
482      */
483     virtual int32_t BindTarget(const std::string &pkgName, const PeerTargetId &targetId,
484         std::map<std::string, std::string> &bindParam, std::shared_ptr<BindTargetCallback> callback) = 0;
485 
486     /**
487      * @brief Unbind the specified target.
488      * @param pkgName     package name.
489      * @param targetId    id of target to unbind.
490      * @param unbindParam unbind parameters.
491      * @param callback    bind result callback.
492      * @return Returns 0 if success.
493      */
494     virtual int32_t UnbindTarget(const std::string &pkgName, const PeerTargetId &targetId,
495         std::map<std::string, std::string> &unbindParam, std::shared_ptr<UnbindTargetCallback> callback) = 0;
496 
497     /**
498      * @brief Get device info list of trusted devices.
499      * @param pkgName        package name.
500      * @param filterOptions  filter option parameters.
501      * @param isRefresh      refresh the list quickly.
502      * @param deviceList     device info list.
503      * @return Returns a list of trusted devices.
504      */
505     virtual int32_t GetTrustedDeviceList(const std::string &pkgName,
506         const std::map<std::string, std::string> &filterOptions, bool isRefresh,
507         std::vector<DmDeviceInfo> &deviceList) = 0;
508 
509     /**
510      * @brief Register device state callback.
511      * @param pkgName     package name.
512      * @param extraParam  extra parameters.
513      * @param callback    device status callback.
514      * @return Returns 0 if success.
515      */
516     virtual int32_t RegisterDevStateCallback(const std::string &pkgName,
517         const std::map<std::string, std::string> &extraParam, std::shared_ptr<DeviceStateCallback> callback) = 0;
518 
519     /**
520      * @brief Check the specific caller whether has permission to access the target.
521      * @param tokenId  the caller token id.
522      * @param targetId the target id.
523      * @return Returns 0 if success.
524      */
525     virtual int32_t CheckAccessToTarget(uint64_t tokenId, const std::string &targetId) = 0;
526 
527     /**
528      * @brief Register Pin Code Holder Callback
529      * @param pkgName  package name.
530      * @param callback  the callback to be invoked upon CreateAuthCodeHolder or DestroyAuthCodeHolder.
531      * @return Returns 0 if success.
532      */
533     virtual int32_t RegisterPinHolderCallback(const std::string &pkgName,
534         std::shared_ptr<PinHolderCallback> callback) = 0;
535 
536     /**
537      * @brief Create Pin Code Holder
538      * @param pkgName  package name.
539      * @param targetId  id of target to create pin holder.
540      * @param pinType  pin code holder type.
541      * @param payload  business custom data.
542      * @return Returns 0 if success.
543      */
544     virtual int32_t CreatePinHolder(const std::string &pkgName, const PeerTargetId &targetId,
545         DmPinType pinType, const std::string &payload) = 0;
546 
547     /**
548      * @brief Destroy Pin Code Holder
549      * @param pkgName  package name.
550      * @param targetId  id of target to destroy pin holder.
551      * @param pinType  pin code holder type.
552      * @param payload  business custom data.
553      * @return Returns 0 if success.
554      */
555     virtual int32_t DestroyPinHolder(const std::string &pkgName, const PeerTargetId &targetId,
556         DmPinType pinType, const std::string &payload) = 0;
557 
558     /**
559     * @brief Request credential information.
560     * @param pkgName       package name.
561     * @param returnJsonStr return json string, it includes deviceId, devicePk, useId and version.
562     * @return Returns 0 if success.
563     */
564     virtual int32_t RequestCredential(const std::string &pkgName, std::string &returnJsonStr) = 0;
565 
566     /**
567      * @brief Check credential information.
568      * @param pkgName       package name.
569      * @param reqJsonStr    request credential params, the params is json string, it includes version and userId.
570      * @param returnJsonStr return json string, it includes deviceId, devicePk, useId and version.
571      * @return Returns 0 if success.
572      */
573     virtual int32_t CheckCredential(const std::string &pkgName, const std::string &reqJsonStr,
574                                     std::string &returnJsonStr) = 0;
575 
576     /**
577      * @brief Import credential information.
578      * @param pkgName       package name.
579      * @param reqJsonStr    request credential params, the params is json string, it includes version and userId.
580      * @param returnJsonStr return json string, it includes deviceId, devicePk, useId and version.
581      * @return Returns 0 if success.
582      */
583     virtual int32_t ImportCredential(const std::string &pkgName, const std::string &reqJsonStr,
584                                      std::string &returnJsonStr) = 0;
585 
586     /**
587      * @brief Delete credential information.
588      * @param pkgName       package name.
589      * @param reqJsonStr    request credential params, the params is json string, it includes version and userId.
590      * @param returnJsonStr return json string, it includes deviceId, devicePk, useId and version.
591      * @return Returns 0 if success.
592      */
593     virtual int32_t DeleteCredential(const std::string &pkgName, const std::string &reqJsonStr,
594                                      std::string &returnJsonStr) = 0;
595 
596     virtual int32_t DpAclAdd(const int64_t accessControlId, const std::string &udid, const int32_t bindType) = 0;
597     virtual int32_t GetDeviceSecurityLevel(const std::string &pkgName, const std::string &networkId,
598                                            int32_t &securityLevel) = 0;
599     virtual bool IsSameAccount(const std::string &netWorkId) = 0;
600     virtual bool CheckAccessControl(const DmAccessCaller &caller, const DmAccessCallee &callee) = 0;
601     virtual bool CheckIsSameAccount(const DmAccessCaller &caller, const DmAccessCallee &callee) = 0;
602     virtual int32_t GetErrCode(int32_t errCode) = 0;
603     virtual int32_t ShiftLNNGear(const std::string &pkgName) = 0;
604     virtual int32_t RegDevTrustChangeCallback(const std::string &pkgName,
605         std::shared_ptr<DevTrustChangeCallback> callback) = 0;
606     virtual int32_t RegisterDeviceScreenStatusCallback(const std::string &pkgName,
607         std::shared_ptr<DeviceScreenStatusCallback> callback) = 0;
608     virtual int32_t UnRegisterDeviceScreenStatusCallback(const std::string &pkgName) = 0;
609     virtual int32_t GetDeviceScreenStatus(const std::string &pkgName, const std::string &networkId,
610         int32_t &screenStatus) = 0;
611 
612     /**
613      * @brief Set Dn Policy
614      * @param pkgName  package name.
615      * @param policy contain DM_POLICY_STRATEGY_FOR_BLE and DM_POLICY_TIMEOUT key and value.
616      *               DM_POLICY_STRATEGY_FOR_BLE: Strategy BLE networking go-online policy, suppress or restore.
617      *               DM_POLICY_TIMEOUT: Indicates the duration for suppressing ble networking.
618      * @return Returns 0 if success.
619      */
620     virtual int32_t SetDnPolicy(const std::string &pkgName, std::map<std::string, std::string> &policy) = 0;
621     virtual int32_t StopAuthenticateDevice(const std::string &pkgName) = 0;
622     virtual int32_t GetNetworkIdByUdid(const std::string &pkgName, const std::string &udid, std::string &networkId) = 0;
623     virtual int32_t RegisterCredentialAuthStatusCallback(const std::string &pkgName,
624         std::shared_ptr<CredentialAuthStatusCallback> callback) = 0;
625     virtual int32_t UnRegisterCredentialAuthStatusCallback(const std::string &pkgName) = 0;
626     virtual int32_t RegisterSinkBindCallback(const std::string &pkgName,
627         std::shared_ptr<BindTargetCallback> callback) = 0;
628     virtual int32_t UnRegisterSinkBindCallback(const std::string &pkgName) = 0;
629     virtual int32_t GetAllTrustedDeviceList(const std::string &pkgName, const std::string &extra,
630         std::vector<DmDeviceInfo> &deviceList) = 0;
631     virtual int32_t RegisterAuthenticationType(const std::string &pkgName,
632         const std::map<std::string, std::string> &authParam) = 0;
633 
634     /**
635      * @brief Query the device list of same account.
636      * @param filterOptions  query parameters.
637      * @param callback       qeury result callback.
638      * @return Returns 0 if success.
639      */
640     virtual int32_t GetDeviceProfileInfoList(const std::string &pkgName,
641         const DmDeviceProfileInfoFilterOptions &filterOptions,
642         std::shared_ptr<GetDeviceProfileInfoListCallback> callback) = 0;
643 
644     virtual int32_t GetDeviceIconInfo(const std::string &pkgName, const DmDeviceIconInfoFilterOptions &filterOptions,
645         std::shared_ptr<GetDeviceIconInfoCallback> callback) = 0;
646     virtual int32_t PutDeviceProfileInfoList(const std::string &pkgName,
647         const std::vector<OHOS::DistributedHardware::DmDeviceProfileInfo> &deviceProfileInfoList) = 0;
648     virtual int32_t GetLocalDisplayDeviceName(const std::string &pkgName, int32_t maxNameLength,
649         std::string &displayName) = 0;
650     virtual int32_t RegisterLocalServiceInfo(const DMLocalServiceInfo &info) = 0;
651     virtual int32_t UnRegisterLocalServiceInfo(const std::string &bundleName, int32_t pinExchangeType) = 0;
652     virtual int32_t UpdateLocalServiceInfo(const DMLocalServiceInfo &info) = 0;
653     virtual int32_t GetLocalServiceInfoByBundleNameAndPinExchangeType(const std::string &bundleName,
654         int32_t pinExchangeType, DMLocalServiceInfo &info) = 0;
655     virtual int32_t SetLocalDeviceName(const std::string &pkgName, const std::string &deviceName,
656         std::shared_ptr<SetLocalDeviceNameCallback> callback) = 0;
657     virtual int32_t SetRemoteDeviceName(const std::string &pkgName, const std::string &deviceId,
658         const std::string &deviceName, std::shared_ptr<SetRemoteDeviceNameCallback> callback) = 0;
659     virtual int32_t RestoreLocalDeviceName(const std::string &pkgName) = 0;
660     virtual int32_t GetDeviceNetworkIdList(const std::string &bundleName, const NetworkIdQueryFilter &queryFilter,
661         std::vector<std::string> &networkIds) = 0;
662 };
663 } // namespace DistributedHardware
664 } // namespace OHOS
665 #endif // DEVICE_MANAGER_H