From 09f514289b6112fb026d3a4c6e5cc6bc01997d73 Mon Sep 17 00:00:00 2001 From: sinikang Date: Thu, 13 Apr 2017 11:40:23 +0900 Subject: [PATCH] Add telephony_network_get_signal_strength() API in network interface Change-Id: I05fbc0f96d1632d29722f872b8b855b1ab3d8067 --- include/telephony_network.h | 22 ++++++++++++++++++++++ packaging/capi-telephony.spec | 2 +- src/telephony_network.c | 28 ++++++++++++++++++++++++++++ test_src/network.c | 20 ++++++++++++++++++++ 4 files changed, 71 insertions(+), 1 deletion(-) diff --git a/include/telephony_network.h b/include/telephony_network.h index b6a2636..391970d 100644 --- a/include/telephony_network.h +++ b/include/telephony_network.h @@ -630,6 +630,28 @@ int telephony_network_get_base_station_latitude(telephony_h handle, int *bs_lati int telephony_network_get_base_station_longitude(telephony_h handle, int *bs_longitude); /** + * @brief Gets the Signal Strength (Received Signal Strength in dBm). + * + * @since_tizen 4.0 + * @privlevel public + * @privilege %http://tizen.org/privilege/telephony + * + * @param[in] handle The handle from telephony_init() + * @param[out] dbm The Received Signal Strength in dBm \n + * Higher the received number, the stronger the signal strength + * + * @return @c 0 on success, + * otherwise a negative error value + * + * @retval #TELEPHONY_ERROR_NONE Successful + * @retval #TELEPHONY_ERROR_INVALID_PARAMETER Invalid parameter + * @retval #TELEPHONY_ERROR_PERMISSION_DENIED Permission denied + * @retval #TELEPHONY_ERROR_NOT_SUPPORTED Not supported + * @retval #TELEPHONY_ERROR_OPERATION_FAILED Operation failed + */ +int telephony_network_get_signal_strength(telephony_h handle, int *dbm); + +/** * @} */ diff --git a/packaging/capi-telephony.spec b/packaging/capi-telephony.spec index 4e6843e..beb5d00 100644 --- a/packaging/capi-telephony.spec +++ b/packaging/capi-telephony.spec @@ -1,6 +1,6 @@ Name: capi-telephony Summary: Telephony Core API -Version: 0.1.72 +Version: 0.1.73 Release: 1 Group: System/Libraries License: Apache-2.0 diff --git a/src/telephony_network.c b/src/telephony_network.c index ae4f7ad..12b5bd8 100644 --- a/src/telephony_network.c +++ b/src/telephony_network.c @@ -838,3 +838,31 @@ int telephony_network_get_base_station_longitude(telephony_h handle, int *bs_lon return ret; } + +int telephony_network_get_signal_strength(telephony_h handle, int *dbm) +{ + int ret; + TapiHandle *tapi_h; + + CHECK_TELEPHONY_SUPPORTED(TELEPHONY_FEATURE); + CHECK_INPUT_PARAMETER(handle); + tapi_h = ((telephony_data *)handle)->tapi_h; + CHECK_INPUT_PARAMETER(tapi_h); + CHECK_INPUT_PARAMETER(dbm); + + ret = tel_get_property_int(tapi_h, TAPI_PROP_NETWORK_SIGNALSTRENGTH_DBM, dbm); + if (ret == TAPI_API_SUCCESS) { + LOGI("signal strength in dBm:[%d]", *dbm); + ret = TELEPHONY_ERROR_NONE; + /* LCOV_EXCL_START */ + } else if (ret == TAPI_API_ACCESS_DENIED) { + LOGE("PERMISSION_DENIED"); + ret = TELEPHONY_ERROR_PERMISSION_DENIED; + } else { + LOGE("OPERATION_FAILED"); + ret = TELEPHONY_ERROR_OPERATION_FAILED; + } + /* LCOV_EXCL_STOP */ + + return ret; +} diff --git a/test_src/network.c b/test_src/network.c index 564bdab..8b2c999 100644 --- a/test_src/network.c +++ b/test_src/network.c @@ -598,6 +598,25 @@ static int run_network_get_bs_longitude(MManager *mm, struct menu_data *menu) return 0; } +static int run_network_get_signal_strength(MManager *mm, struct menu_data *menu) +{ + telephony_handle_list_s *handle_list = menu_manager_ref_user_data(mm); + int ret; + int dbm; + + msg("call telephony_network_get_signal_strength()"); + + ret = telephony_network_get_signal_strength(handle_list->handle[subs_type], &dbm); + if (ret != TELEPHONY_ERROR_NONE) { + msg("telephony_network_get_signal_strength() failed!!! (ret:%d,%s)", ret, get_error_message(ret)); + return 0; + } + + msg(" - signal strength in dBm = %d", dbm); + + return 0; +} + struct menu_data menu_network[] = { {"1", "telephony_network_get_cell_id", NULL, run_network_get_cell_id, NULL}, {"2", "telephony_network_get_lac", NULL, run_network_get_lac, NULL}, @@ -619,6 +638,7 @@ struct menu_data menu_network[] = { {"18", "telephony_network_get_base_station_id", NULL, run_network_get_bs_id, NULL}, {"19", "telephony_network_get_base_station_latitude", NULL, run_network_get_bs_latitude, NULL}, {"20", "telephony_network_get_base_station_longitude", NULL, run_network_get_bs_longitude, NULL}, + {"21", "telephony_network_get_signal_strength", NULL, run_network_get_signal_strength, NULL}, {NULL, }, }; -- 2.7.4