diff --git a/frameworks/abilitymgr_lite/include/ability_self_callback.h b/frameworks/abilitymgr_lite/include/ability_self_callback.h index eca1f84e733a23733a321c13d151f50fa224f0a7..505726e82e478df55beecd9caff2bd69ec084251 100755 --- a/frameworks/abilitymgr_lite/include/ability_self_callback.h +++ b/frameworks/abilitymgr_lite/include/ability_self_callback.h @@ -32,13 +32,13 @@ public: return instance; } ~AbilitySelfCallback(); - const SvcIdentity *RegisterAbilitySelfCallback(AbilityClientCallback &abilityClientCallback); - const AbilityClientCallback GetCallback(); + const SvcIdentity *RegisterAbilitySelfCallback(IAbilityStartCallback &iAbilityStartCallback); + const IAbilityStartCallback GetCallback(); private: AbilitySelfCallback() = default; static int32_t Callback(const IpcContext *context, void *ipcMsg, IpcIo *io, void *arg); int32_t GenerateLocalServiceId(); - AbilityClientCallback abilityClientCallback_ { nullptr }; + IAbilityStartCallback iAbilityStartCallback_ { nullptr }; SvcIdentity *svcIdentity_ { nullptr }; DISALLOW_COPY_AND_MOVE(AbilitySelfCallback); diff --git a/frameworks/abilitymgr_lite/src/ability_manager.cpp b/frameworks/abilitymgr_lite/src/ability_manager.cpp index b36cc009be6661e9ffb7b5daf14fda5fb9794d34..056fd7501e35a71bd5fc2f2e6151ef65c63f168b 100755 --- a/frameworks/abilitymgr_lite/src/ability_manager.cpp +++ b/frameworks/abilitymgr_lite/src/ability_manager.cpp @@ -35,13 +35,13 @@ int StartAbility(const Want *want) return OHOS::AbilityMsClient::GetInstance().ScheduleAms(want, 0, nullptr, START_ABILITY); } -int StartAbilityWithCallback(const Want *want, AbilityClientCallback abilityClientCallback) +int StartAbilityWithCallback(const Want *want, IAbilityStartCallback iAbilityStartCallback) { - if (want == nullptr || abilityClientCallback == nullptr) { + if (want == nullptr || iAbilityStartCallback == nullptr) { HILOG_ERROR(HILOG_MODULE_APP, "want or callback is null, StartAbilityWithCallback failed!"); return -1; } - const SvcIdentity *svc = OHOS::AbilitySelfCallback::GetInstance().RegisterAbilitySelfCallback(abilityClientCallback); + const SvcIdentity *svc = OHOS::AbilitySelfCallback::GetInstance().RegisterAbilitySelfCallback(iAbilityStartCallback); OHOS::AbilityMsClient::GetInstance().Initialize(); return OHOS::AbilityMsClient::GetInstance().ScheduleAms(want, 0, svc, START_ABILITY); } diff --git a/frameworks/abilitymgr_lite/src/ability_self_callback.cpp b/frameworks/abilitymgr_lite/src/ability_self_callback.cpp index fbc1f652b9d4a7c737fce62132cb3b009573c2f1..d78e425afe28db700ceadab70f26ef80f4fb05cf 100755 --- a/frameworks/abilitymgr_lite/src/ability_self_callback.cpp +++ b/frameworks/abilitymgr_lite/src/ability_self_callback.cpp @@ -31,15 +31,15 @@ AbilitySelfCallback::~AbilitySelfCallback() } } -int32_t InnerCallback(const char *resultMessage, uint8_t resultCode, const AbilityClientCallback &abilityClientCallback) +int32_t InnerCallback(const char *resultMessage, uint8_t resultCode, const IAbilityStartCallback &iAbilityStartCallback) { - if (resultMessage == nullptr || abilityClientCallback == nullptr) { + if (resultMessage == nullptr || iAbilityStartCallback == nullptr) { return PARAM_NULL_ERROR; } if (resultCode == ERR_OK) { - abilityClientCallback(resultCode, resultMessage); + iAbilityStartCallback(resultCode, resultMessage); } else { - abilityClientCallback(resultCode, ObtainErrorMessage(resultCode).c_str()); + iAbilityStartCallback(resultCode, ObtainErrorMessage(resultCode).c_str()); } return ERR_OK; } @@ -56,8 +56,8 @@ int32_t AbilitySelfCallback::Callback(const IpcContext *context, void *ipcMsg, I FreeBuffer(NULL, ipcMsg); return PARAM_NULL_ERROR; } - AbilityClientCallback abilityClientCallback = GetInstance().GetCallback(); - if (abilityClientCallback == nullptr) { + IAbilityStartCallback iAbilityStartCallback = GetInstance().GetCallback(); + if (iAbilityStartCallback == nullptr) { FreeBuffer(NULL, ipcMsg); return PARAM_NULL_ERROR; } @@ -71,7 +71,7 @@ int32_t AbilitySelfCallback::Callback(const IpcContext *context, void *ipcMsg, I auto resultCode = static_cast(IpcIoPopInt32(io)); FreeBuffer(NULL, ipcMsg); if (callbackType == START_ABILITY_CALLBACK) { - return InnerCallback(START_ABILITY_SUCCESS, resultCode, abilityClientCallback); + return InnerCallback(START_ABILITY_SUCCESS, resultCode, iAbilityStartCallback); } HILOG_ERROR(HILOG_MODULE_APP, "AbilitySelfCallback get error callback type"); return GET_CALLBACK_TYPE_ERROR; @@ -93,9 +93,9 @@ int32 AbilitySelfCallback::GenerateLocalServiceId() return ERR_OK; } -const SvcIdentity *AbilitySelfCallback::RegisterAbilitySelfCallback(AbilityClientCallback &abilityClientCallback) +const SvcIdentity *AbilitySelfCallback::RegisterAbilitySelfCallback(IAbilityStartCallback &iAbilityStartCallback) { - if (abilityClientCallback == nullptr) { + if (iAbilityStartCallback == nullptr) { return nullptr; } if (svcIdentity_ == nullptr) { @@ -104,12 +104,12 @@ const SvcIdentity *AbilitySelfCallback::RegisterAbilitySelfCallback(AbilityClien return nullptr; } } - abilityClientCallback_ = abilityClientCallback; + iAbilityStartCallback_ = iAbilityStartCallback; return svcIdentity_; } -const AbilityClientCallback AbilitySelfCallback::GetCallback() +const IAbilityStartCallback AbilitySelfCallback::GetCallback() { - return abilityClientCallback_; + return iAbilityStartCallback_; } } // namespace \ No newline at end of file diff --git a/frameworks/want_lite/src/want.cpp b/frameworks/want_lite/src/want.cpp index f7ac6cca49ef428c39a3deb1ea11a1a19c948c18..2b9541ab88f49f98f00d4fdfbbd16639c4a9f594 100755 --- a/frameworks/want_lite/src/want.cpp +++ b/frameworks/want_lite/src/want.cpp @@ -51,10 +51,11 @@ constexpr static char URI_SEPARATOR = ';'; constexpr static int VALUE_NULL = 0; constexpr static int VALUE_OBJECT = 1; constexpr static int DATA_LENGTH = 2048; +#endif + constexpr uint8_t INT_VALUE_TYPE = 6; constexpr uint8_t STRING_VALUE_TYPE = 13; constexpr uint8_t KEY_VALUE_PAIR_TYPE = 97; -#endif void ClearWant(Want *want) { diff --git a/interfaces/kits/ability_lite/ability_manager.h b/interfaces/kits/ability_lite/ability_manager.h index 4e8da391ca561247a7ce39ccb9cf8c3f8dea7108..02cc66b54e18dd4e3a49284c29ba692a22643480 100644 --- a/interfaces/kits/ability_lite/ability_manager.h +++ b/interfaces/kits/ability_lite/ability_manager.h @@ -57,10 +57,8 @@ extern "C" { * @param resultCode Indicates the status code returned for starting ability result. For details, see {@link AppexecfwkErrors}. * @param resultMessage Indicates the result message returned with the status code. * - * @since 6.0 - * @version 6.0 */ -typedef void (*AbilityClientCallback)(const uint8_t resultCode, const void *resultMessage); +typedef void (*IAbilityStartCallback)(const uint8_t resultCode, const void *resultMessage); /** * @brief Starts an ability based on the specified {@link Want} information. @@ -70,6 +68,15 @@ typedef void (*AbilityClientCallback)(const uint8_t resultCode, const void *resu */ int StartAbility(const Want *want); +/** + * @brief Starts an ability based on the specified {@link Want} information with specific callback {@link IAbilityStartCallback}. + * + * @param want Indicates the pointer to the {@link Want} structure containing information about the ability to start. + * @param iAbilityStartCallback callback to be invoked when finishing starting ability. + * @return Returns 0 if this function is successfully called; returns another value otherwise. + */ +int StartAbilityWithCallback(const Want *want, IAbilityStartCallback iAbilityStartCallback); + /** * @brief Stops an ability based on the specified {@link Want} information. *