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 ¶ms) = 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