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