diff --git a/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp b/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp index efbf02666c430772091a7b7b1308d35cffbaabb5..9cbb7b60b5e6d4e3d17d8c1cdf26853b273942e5 100644 --- a/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp +++ b/interfaces/kits/cj/work_scheduler/work_scheduler_ffi.cpp @@ -26,6 +26,19 @@ namespace OHOS { namespace WorkScheduler { +int32_t InnerWrapWantParamsString(const sptr iIt, CParameters *p) +{ + AAFwk::IString *ao = AAFwk::IString::Query(iIt); + if (ao == nullptr) { + LOGE("ao is nullptr, no memory."); + return ERR_NO_MEMORY; + } + std::string natValue = OHOS::AAFwk::String::Unbox(ao); + p->value = MallocCString(natValue); + p->size = static_cast(natValue.length()) + 1; + p->valueType = STRING_TYPE; + return 0; +} template int32_t InnerWrapWantParamsT(const sptr iIt, CParameters *p) { @@ -462,7 +475,7 @@ extern "C" { } case VALUE_TYPE_STRING: { arrParam.head[i].valueType = STRING_TYPE; - InnerWrapWantParamsT(it.second, &arrParam.head[i]); + InnerWrapWantParamsString(it.second, &arrParam.head[i]); break; } default: {