diff --git a/interfaces/cj/kits/BUILD.gn b/interfaces/cj/kits/BUILD.gn index 1155e845dded3e4163623b00e2dd01a9e9e2167b..7dae77041f10e4824559ecc204197d4ee6df18b5 100644 --- a/interfaces/cj/kits/BUILD.gn +++ b/interfaces/cj/kits/BUILD.gn @@ -75,6 +75,7 @@ ohos_shared_library("cj_distributed_device_manager_ffi") { "ipc:ipc_core", "napi:cj_bind_ffi", "napi:cj_bind_native", + "intl:libbegetutil", ] innerapi_tags = [ "platformsdk" ] diff --git a/interfaces/cj/kits/src/device_manager_impl.cpp b/interfaces/cj/kits/src/device_manager_impl.cpp index faffd17bf4f6f7c0f74037b5868ce39fd2481ae7..62b74094ceb94570f645fc137609a20860390fa0 100644 --- a/interfaces/cj/kits/src/device_manager_impl.cpp +++ b/interfaces/cj/kits/src/device_manager_impl.cpp @@ -25,6 +25,7 @@ #include "dm_constants.h" #include "dm_error_message.h" #include "dm_log.h" +#include "parameter.h" namespace OHOS::DistributedHardware { @@ -49,6 +50,7 @@ std::mutex g_dmUiCallbackMapMutex; const int32_t DM_AUTH_REQUEST_SUCCESS_STATUS = 7; const int32_t DM_FFI_BUF_LENGTH = 256; +const int32_t API_VERSION_19 = 19; constexpr const char* DM_FFI_EVENT_DEVICE_STATE_CHANGE = "deviceStateChange"; constexpr const char* DM_FFI_EVENT_DEVICE_DISCOVER_SUCCESS = "discoverSuccess"; @@ -379,6 +381,10 @@ int32_t DeviceManagerFfiImpl::StartDiscovering(const std::string &extra) } } uint64_t tokenId = OHOS::IPCSkeleton::GetSelfTokenID(); + if (tokenId == 0 && GetSdkApiVersion() > API_VERSION_19) { + LOGE("Failed to get token id."); + return DM_ERR_DISCOVERY_INVALID; + } int32_t ret = DeviceManager::GetInstance().StartDeviceDiscovery(bundleName_, tokenId, extra, discoveryCallback); if (ret != 0) { ret = TransformErrCode(ret); @@ -395,6 +401,10 @@ int32_t DeviceManagerFfiImpl::StopDiscovering() return ERR_NO_PERMISSION; } uint64_t tokenId = OHOS::IPCSkeleton::GetSelfTokenID(); + if (tokenId == 0 && GetSdkApiVersion() > API_VERSION_19) { + LOGE("Failed to get token id."); + return DM_ERR_DISCOVERpY_INVALID; + } int32_t ret = DeviceManager::GetInstance().StopDeviceDiscovery(tokenId, bundleName_); if (ret != 0) { ret = TransformErrCode(ret);