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