From 813d23145d63ab5c0c29220c4bba02f7c103d6cc Mon Sep 17 00:00:00 2001 From: Joohyun Kim Date: Tue, 14 May 2013 11:58:12 +0900 Subject: [PATCH] Fix modem ready issue on IMEI (P130506-0100) Change-Id: I52bf86ba7a3ec6fe614b2761f02fb7e3447e19b3 Signed-off-by: Joohyun Kim --- packaging/osp-appfw.spec | 1 + src/CMakeLists.txt | 1 + src/system/CMakeLists.txt | 2 ++ src/system/FSys_SystemInfoImpl.cpp | 65 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+) diff --git a/packaging/osp-appfw.spec b/packaging/osp-appfw.spec index a3ce0ed..46f0d6e 100755 --- a/packaging/osp-appfw.spec +++ b/packaging/osp-appfw.spec @@ -19,6 +19,7 @@ BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(capi-system-power) BuildRequires: pkgconfig(capi-system-runtime-info) BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(tapi) BuildRequires: pkgconfig(alarm-service) BuildRequires: pkgconfig(appsvc) BuildRequires: pkgconfig(aul) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 19fac68..5470392 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,6 +30,7 @@ pkg_check_modules(pkgs REQUIRED uuid vconf zlib + tapi capi-appfw-app-manager capi-appfw-application capi-appfw-package-manager diff --git a/src/system/CMakeLists.txt b/src/system/CMakeLists.txt index 3d87d91..73c1ecf 100755 --- a/src/system/CMakeLists.txt +++ b/src/system/CMakeLists.txt @@ -11,6 +11,8 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/locales/inc ${CMAKE_SOURCE_DIR}/src/app/inc ${CMAKE_SOURCE_DIR}/src/security/inc + /usr/include/telephony + /usr/include/telephony-client ) INCLUDE(FindPkgConfig) diff --git a/src/system/FSys_SystemInfoImpl.cpp b/src/system/FSys_SystemInfoImpl.cpp index 6974c1d..3ecd54a 100644 --- a/src/system/FSys_SystemInfoImpl.cpp +++ b/src/system/FSys_SystemInfoImpl.cpp @@ -19,6 +19,9 @@ * @brief This is the implementation file for _SystemInfoImpl class. */ #include +#include + +#include #include #include @@ -432,6 +435,40 @@ _SystemInfoImpl::GetSysInfo(const String& key, String& value) { r = E_OBJ_NOT_FOUND; } + else if (key == _DUID) + { + int ret = 0; + TapiHandle* handle = null; + int time_count = 0; + int status = 0; + + handle = tel_init(null); + if(handle != null) + { + while(time_count < 30) //Wait 30 second. + { + ret = tel_check_modem_power_status(handle, &status); + SysLog(NID_SYS, "Modem check result is %d, status is %d.", handle, status); + if(ret != TAPI_API_SUCCESS) + { + SysLogException(NID_SYS, E_SYSTEM, "It is failed to get Modem status."); + tel_deinit(handle); + return E_SYSTEM; + } + + if(status == 0) + { + break; + } + + usleep(1000000); + time_count++; + } + tel_deinit(handle); + } + _SystemClient* pSystemClient = _SystemClient::GetInstance(); + r = pSystemClient->GetValue(key, value); + } else { r = GetFromRegistry(tizenKey, value); @@ -610,6 +647,34 @@ _SystemInfoImpl::GetImei(String& imei) { result r = E_SUCCESS; + int ret = 0; + TapiHandle* handle = null; + int time_count = 0; + int status = 0; + + handle = tel_init(null); + SysTryReturnResult(NID_SYS, handle != null, E_SYSTEM, "It is failed to get handle of telephony."); + while(time_count < 30) //Wait 30 second. + { + ret = tel_check_modem_power_status(handle, &status); + SysLog(NID_SYS, "Modem check result is %d, status is %d.", handle, status); + if(ret != TAPI_API_SUCCESS) + { + SysLogException(NID_SYS, E_SYSTEM, "It is failed to get Modem status."); + tel_deinit(handle); + return E_SYSTEM; + } + + if(status == 0) + { + break; + } + + usleep(1000000); + time_count++; + } + tel_deinit(handle); + ArrayList requestMessage; ArrayList responseMessage; -- 2.7.4