diff --git a/frameworks/cj/src/telephony_call_ffi.cpp b/frameworks/cj/src/telephony_call_ffi.cpp index d96d19136d3c13603e808a2904156d6c47077859..4ab24159e58716034dc25333ae192f4ab14b7f17 100644 --- a/frameworks/cj/src/telephony_call_ffi.cpp +++ b/frameworks/cj/src/telephony_call_ffi.cpp @@ -31,9 +31,9 @@ extern "C" { return TelephonyCallImpl::FormatPhoneNumberToE164(cPhoneNumber, cCountryCode, errCode); } - int32_t FfiOHOSTelephonyCallMakeCall(char* number) + int32_t FfiOHOSTelephonyCallMakeCall(OHOS::AbilityRuntime::Context* context, char* number) { - return TelephonyCallImpl::MakeCall(number); + return TelephonyCallImpl::MakeCall(context, number); } bool FfiOHOSTelephonyCallIsEmergencyPhoneNumber(char* phoneNumber, int32_t slotId, int32_t* errCode) diff --git a/frameworks/cj/src/telephony_call_ffi.h b/frameworks/cj/src/telephony_call_ffi.h index 8d4893af828a994c974220a73ba9ab7018d3e135..725e3af42ba8d90ddbc319c6e3be809b9851ec61 100644 --- a/frameworks/cj/src/telephony_call_ffi.h +++ b/frameworks/cj/src/telephony_call_ffi.h @@ -42,7 +42,7 @@ extern "C" { FFI_EXPORT bool FfiOHOSTelephonyCallIsEmergencyPhoneNumber(char *phoneNumber, int32_t slotId, int32_t* errCode); - FFI_EXPORT int32_t FfiOHOSTelephonyCallMakeCall(char* number); + FFI_EXPORT int32_t FfiOHOSTelephonyCallMakeCall(OHOS::AbilityRuntime::Context* context, char* number); } } } diff --git a/frameworks/cj/src/telephony_call_impl.cpp b/frameworks/cj/src/telephony_call_impl.cpp index c96c88e9d41dad65474058719c2abcc9d481e899..6ed5cea64ced8f211748013c28374703644533fe 100644 --- a/frameworks/cj/src/telephony_call_impl.cpp +++ b/frameworks/cj/src/telephony_call_impl.cpp @@ -111,7 +111,7 @@ namespace Telephony { return MallocCString(result); } - int32_t TelephonyCallImpl::MakeCall(char* phoneNumber) + int32_t TelephonyCallImpl::MakeCall(OHOS::AbilityRuntime::Context* context, char* phoneNumber) { AAFwk::Want want; AppExecFwk::ElementName element("", "com.ohos.contacts", "com.ohos.contacts.MainAbility"); @@ -121,7 +121,10 @@ namespace Telephony { wantParams.SetParam("pageFlag", AAFwk::String::Box("page_flag_edit_before_calling")); wantParams.SetParam(AAFwk::Want::PARAM_BACK_TO_OTHER_MISSION_STACK, AAFwk::Boolean::Box(true)); want.SetParams(wantParams); - int32_t err = AAFwk::AbilityManagerClient::GetInstance()->StartAbility(want); + if (context == nullptr) { + return CJ_ERROR_TELEPHONY_ARGUMENT_ERROR; + } + int32_t err = AAFwk::AbilityManagerClient::GetInstance()->StartAbility(want, context->GetToken()); return ConvertCJErrCode(err); } diff --git a/frameworks/cj/src/telephony_call_impl.h b/frameworks/cj/src/telephony_call_impl.h index c033496f3b13f006a01f2d466183f45286eb9ad2..03b5ce5b4e07b5855a7af2aacaf2cb3da1fc0a15 100644 --- a/frameworks/cj/src/telephony_call_impl.h +++ b/frameworks/cj/src/telephony_call_impl.h @@ -40,7 +40,7 @@ public: static bool IsEmergencyPhoneNumber(char *cPhoneNumber, int32_t slotId, int32_t* errCode); - static int32_t MakeCall(char* phoneNumber); + static int32_t MakeCall(OHOS::AbilityRuntime::Context* context, char* phoneNumber); }; } }