• 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     DM_EXPORT 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 name.
347      * @return Returns device name.
348      */
349     virtual int32_t GetLocalDeviceName(std::string &deviceName) = 0;
350 
351     /**
352      * @brief Get local device type.
353      * @param pkgName package name.
354      * @return Returns device type.
355      */
356     virtual int32_t GetLocalDeviceType(const std::string &pkgName, int32_t &deviceType) = 0;
357 
358     /**
359      * @brief Get device name.
360      * @param pkgName package name.
361      * @param networkId device networkId.
362      * @return Returns device name.
363      */
364     virtual int32_t GetDeviceName(const std::string &pkgName, const std::string &networkId,
365         std::string &deviceName) = 0;
366 
367     /**
368      * @brief Get device type.
369      * @param pkgName package name.
370      * @param networkId device networkId.
371      * @return Returns device type.
372      */
373     virtual int32_t GetDeviceType(const std::string &pkgName, const std::string &networkId, int32_t &deviceType) = 0;
374 
375     /**
376      * @brief Bind the specified device.
377      * @param pkgName    package name.
378      * @param bindType   bindType of device to bind.
379      * @param deviceInfo device id of device to bind.
380      * @param extra      extra info.This parameter can be null.
381      * @param callback   callback.
382      * @return Returns 0 if success.
383      */
384     virtual int32_t BindDevice(const std::string &pkgName, int32_t bindType, const std::string &deviceId,
385         const std::string &extra, std::shared_ptr<AuthenticateCallback> callback) = 0;
386 
387     /**
388      * @brief UnBind the specified device.
389      * @param pkgName    package name.
390      * @param deviceId device id to UnBindDevice.
391      * @return Returns 0 if success.
392      */
393     virtual int32_t UnBindDevice(const std::string &pkgName, const std::string &deviceId) = 0;
394 
395     virtual int32_t UnBindDevice(const std::string &pkgName, const std::string &deviceId, const std::string &extra) = 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     virtual int32_t RegDevTrustChangeCallback(const std::string &pkgName,
611         std::shared_ptr<DevTrustChangeCallback> callback) = 0;
612     virtual int32_t RegisterDeviceScreenStatusCallback(const std::string &pkgName,
613         std::shared_ptr<DeviceScreenStatusCallback> callback) = 0;
614     virtual int32_t UnRegisterDeviceScreenStatusCallback(const std::string &pkgName) = 0;
615     virtual int32_t GetDeviceScreenStatus(const std::string &pkgName, const std::string &networkId,
616         int32_t &screenStatus) = 0;
617     virtual int32_t SetDnPolicy(const std::string &pkgName, std::map<std::string, std::string> &policy) = 0;
618     virtual int32_t StopAuthenticateDevice(const std::string &pkgName) = 0;
619     virtual int32_t GetNetworkIdByUdid(const std::string &pkgName, const std::string &udid, std::string &networkId) = 0;
620     virtual int32_t RegisterCredentialAuthStatusCallback(const std::string &pkgName,
621         std::shared_ptr<CredentialAuthStatusCallback> callback) = 0;
622     virtual int32_t UnRegisterCredentialAuthStatusCallback(const std::string &pkgName) = 0;
623     virtual int32_t RegisterSinkBindCallback(const std::string &pkgName,
624         std::shared_ptr<BindTargetCallback> callback) = 0;
625     virtual int32_t UnRegisterSinkBindCallback(const std::string &pkgName) = 0;
626     virtual int32_t GetAllTrustedDeviceList(const std::string &pkgName, const std::string &extra,
627         std::vector<DmDeviceInfo> &deviceList) = 0;
628     virtual int32_t RegisterAuthenticationType(const std::string &pkgName,
629         const std::map<std::string, std::string> &authParam) = 0;
630     virtual int32_t GetDeviceProfileInfoList(const std::string &pkgName,
631         const DmDeviceProfileInfoFilterOptions &filterOptions,
632         std::shared_ptr<GetDeviceProfileInfoListCallback> callback) = 0;
633     virtual int32_t GetDeviceIconInfo(const std::string &pkgName, const DmDeviceIconInfoFilterOptions &filterOptions,
634         std::shared_ptr<GetDeviceIconInfoCallback> callback) = 0;
635     virtual int32_t PutDeviceProfileInfoList(const std::string &pkgName,
636         const std::vector<OHOS::DistributedHardware::DmDeviceProfileInfo> &deviceProfileInfoList) = 0;
637     virtual int32_t GetLocalDisplayDeviceName(const std::string &pkgName, int32_t maxNameLength,
638         std::string &displayName) = 0;
639     virtual int32_t RegisterLocalServiceInfo(const DMLocalServiceInfo &info) = 0;
640     virtual int32_t UnRegisterLocalServiceInfo(const std::string &bundleName, int32_t pinExchangeType) = 0;
641     virtual int32_t UpdateLocalServiceInfo(const DMLocalServiceInfo &info) = 0;
642     virtual int32_t GetLocalServiceInfoByBundleNameAndPinExchangeType(const std::string &bundleName,
643         int32_t pinExchangeType, DMLocalServiceInfo &info) = 0;
644     virtual int32_t SetLocalDeviceName(const std::string &pkgName, const std::string &deviceName,
645         std::shared_ptr<SetLocalDeviceNameCallback> callback) = 0;
646     virtual int32_t SetRemoteDeviceName(const std::string &pkgName, const std::string &deviceId,
647         const std::string &deviceName, std::shared_ptr<SetRemoteDeviceNameCallback> callback) = 0;
648     virtual int32_t RestoreLocalDeviceName(const std::string &pkgName) = 0;
649     virtual int32_t GetDeviceNetworkIdList(const std::string &bundleName, const NetworkIdQueryFilter &queryFilter,
650         std::vector<std::string> &networkIds) = 0;
651     virtual int32_t UnRegisterPinHolderCallback(const std::string &pkgName) = 0;
652     virtual bool CheckSrcAccessControl(const DmAccessCaller &caller, const DmAccessCallee &callee) = 0;
653     virtual bool CheckSinkAccessControl(const DmAccessCaller &caller, const DmAccessCallee &callee) = 0;
654     virtual bool CheckSrcIsSameAccount(const DmAccessCaller &caller, const DmAccessCallee &callee) = 0;
655     virtual bool CheckSinkIsSameAccount(const DmAccessCaller &caller, const DmAccessCallee &callee) = 0;
656 };
657 } // namespace DistributedHardware
658 } // namespace OHOS
659 #endif // DEVICE_MANAGER_H
660