diff --git a/services/source/transport/include/distributed_input_source_transport.h b/services/source/transport/include/distributed_input_source_transport.h index 46349384b4c8d2f265c4e4b0eba8932717941e38..6441f19b16c33edac2b6e1e593c7fe2de63ccc24 100644 --- a/services/source/transport/include/distributed_input_source_transport.h +++ b/services/source/transport/include/distributed_input_source_transport.h @@ -136,6 +136,7 @@ private: void CalculateLatency(int32_t sessionId, const nlohmann::json &recMsg); std::string JointDhIds(const std::vector &dhids); + std::vector SplitDhIdString(const std::string &dhIdsString); void RegRespFunMap(); void ResetKeyboardKeyState(const std::vector &dhids); diff --git a/services/source/transport/src/distributed_input_source_transport.cpp b/services/source/transport/src/distributed_input_source_transport.cpp index 63ac55c3e4037e6e88efab43e01d556f3e294d51..5bd4c311725e4afae706f073a6acd5b30cf1b716 100644 --- a/services/source/transport/src/distributed_input_source_transport.cpp +++ b/services/source/transport/src/distributed_input_source_transport.cpp @@ -39,7 +39,9 @@ namespace OHOS { namespace DistributedHardware { namespace DistributedInput { - +namespace { + const char DHID_SPLIT = '.'; +} DistributedInputSourceTransport::~DistributedInputSourceTransport() { DHLOGI("Dtor DistributedInputSourceTransport"); @@ -323,6 +325,8 @@ int32_t DistributedInputSourceTransport::StopRemoteInputDhids(int32_t srcTsrcSeI return ERR_DH_INPUT_SERVER_SOURCE_TRANSPORT_STOP_FAIL; } DHLOGI("StopRemoteInputDhids srcTsrcSeId:%d, sinkSessionId:%d.", srcTsrcSeId, sinkSessionId); + std::vector dhIdsVec = SplitDhIdString(dhids); + ResetKeyboardKeyState(dhIdsVec); nlohmann::json jsonStr; jsonStr[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_DHID_FOR_REL; @@ -897,10 +901,17 @@ std::string DistributedInputSourceTransport::JointDhIds(const std::vector DistributedInputSourceTransport::SplitDhIdString(const std::string &dhIdsString) +{ + std::vector dhIdsVec; + SplitStringToVector(dhIdsString, DHID_SPLIT, dhIdsVec); + return dhIdsVec; +} + int32_t DistributedInputSourceTransport::SendMessage(int32_t sessionId, std::string &message) { return DistributedInputTransportBase::GetInstance().SendMsg(sessionId, message);