2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 * @file FTelNetworkInfo.h
19 * @brief This is the header file for the %NetworkInfo class.
21 * This header file contains the declarations of the %NetworkInfo class.
23 #ifndef _FTEL_NETWORK_INFO_H_
24 #define _FTEL_NETWORK_INFO_H_
30 namespace Tizen { namespace Telephony
32 class _NetworkInfoImpl;
36 * @brief This class provides information of the current network.
40 * The %NetworkInfo class provides methods to get information of the current network such as MNC, MCC, PLMN, cell ID, and operator name.
42 * The following example demonstrates how to use the %NetworkInfo class to get the network information.
47 * #include <FTelephony.h>
49 * using namespace Tizen::Base;
50 * using namespace Tizen::Telephony;
59 * void GetNetworkInfo(void);
63 * MyClass::GetNetworkInfo(void)
65 * result r = E_SUCCESS;
71 * String operatorName;
73 * NetworkInfo networkInfo;
74 * NetworkManager* pNetworkManager = new (std::nothrow) NetworkManager();
76 * r = pNetworkManager->Construct(null);
79 * delete pNetworkManager;
83 * r = pNetworkManager->GetNetworkInfo(networkInfo);
86 * delete pNetworkManager;
90 * mnc = networkInfo.GetMnc();
91 * mcc = networkInfo.GetMcc();
92 * cellId = networkInfo.GetCellId();
93 * lac = networkInfo.GetLac();
94 * plmn = networkInfo.GetPlmn();
95 * operatorName = networkInfo.GetOperatorName();
97 * delete pNetworkManager;
102 class _OSP_EXPORT_ NetworkInfo
103 : public Tizen::Base::Object
107 * This is the default constructor for this class.
114 * Copying of objects using this copy constructor is allowed.
118 * @param[in] rhs An instance of %NetworkInfo
120 NetworkInfo(const NetworkInfo& rhs);
123 * This destructor overrides Tizen::Base::Object::~Object().
127 virtual ~NetworkInfo(void);
130 * Gets the Mobile Network Code (MNC) of the network.
134 * @privilege %http://tizen.org/privilege/telephony
136 * @return The MNC of the network
137 * @exception E_SUCCESS The method is successful.
138 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
139 * @remarks The specific error code can be accessed using the GetLastResult() method.
141 int GetMnc(void) const;
144 * Gets the Mobile Country Code (MCC) of the network.
148 * @privilege %http://tizen.org/privilege/telephony
150 * @return The MCC of the network
151 * @exception E_SUCCESS The method is successful.
152 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
153 * @remarks The specific error code can be accessed using the GetLastResult() method.
155 int GetMcc(void) const;
158 * Gets the Public Land Mobile Network (PLMN).
161 * @brief <i> [Compatibility] </i>
165 * @compatibility This method has compatibility issues with OSP compatible applications. @n
166 * For more information, see the issue description for @ref CompNetworkInfoGetPlmnPage "here".
169 * @privilege %http://tizen.org/privilege/telephony
171 * @return The PLMN name
172 * @exception E_SUCCESS The method is successful.
173 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
174 * @remarks The specific error code can be accessed using the GetLastResult() method.
176 Tizen::Base::String GetPlmn(void) const;
180 * @page CompNetworkInfoGetPlmnPage Compatibility for GetPlmn()
181 * @section CompNetworkInfoGetPlmnPageIssueSection Issues
182 * Implementation of this method in Tizen API versions prior to 2.1 has the following issue: @n
183 * -# The method returns an alphabetic name of PLMN.
185 * @section CompNetworkInfoGetPlmnPageSolutionSection Resolutions
186 * -# The method returns a numeric name of PLMN-ID(MCC+MNC).
187 * To get the alphabetic name of PLMN, it is recommended to use Tizen::Telephony::GetOperatorName().
191 * Gets the current cell ID.
195 * @privilege %http://tizen.org/privilege/telephony
197 * @return The current cell ID
198 * @exception E_SUCCESS The method is successful.
199 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
200 * @remarks This cell ID is provided using only NetworkManager::GetNetworkInfo() when connected to a network.
201 * @remarks The specific error code can be accessed using the GetLastResult() method.
203 int GetCellId(void) const;
206 * Gets the current Location Area Code (LAC).
210 * @privilege %http://tizen.org/privilege/telephony
212 * @return The current LAC
213 * @exception E_SUCCESS The method is successful.
214 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
215 * @remarks This LAC is provided using only NetworkManager::GetNetworkInfo() when connected to a network.
216 * @remarks The specific error code can be accessed using the GetLastResult() method.
218 int GetLac(void) const;
221 * Gets the operator name.
225 * @privilege %http://tizen.org/privilege/telephony
227 * @return The operator name
228 * @exception E_SUCCESS The method is successful.
229 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
230 * @remarks The specific error code can be accessed using the GetLastResult() method.
232 Tizen::Base::String GetOperatorName(void) const;
235 * Checks whether the specified instance of %NetworkInfo equals the current instance.
239 * @return @c true if the specified instance equals the current instance, @n
241 * @param[in] rhs An instance of %NetworkInfo
242 * @remarks The method returns @c false if the specified object is not %NetworkInfo.
244 virtual bool Equals(const Tizen::Base::Object& rhs) const;
247 * Gets the hash value of the current instance.
251 * @return The hash value of the current instance
253 virtual int GetHashCode(void) const;
256 * Gets the received signal strength indication of a modem device.
260 * @privilege %http://tizen.org/privilege/telephony
261 * @feature %http://tizen.org/feature/network.telephony
262 * @return The current RSSI @n
263 * The possible RSSI value ranges from @c 0 to @c 100.
264 * @exception E_SUCCESS The method is successful.
265 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
266 * @exception E_SYSTEM A system error has occurred.
267 * @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature. @b Since: @b 2.1
268 * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering</a>.
270 * - The specific error code can be accessed using the GetLastResult() method.
271 * - Before calling this method, check whether the feature is supported by %Tizen::System::SystemInfo::GetValue() methods.
273 static int GetRssi(void);
276 * Copying of objects using this copy assignment operator is allowed.
280 * @return The reference of this instance
281 * @param[in] rhs An instance of %NetworkInfo
283 NetworkInfo& operator=(const NetworkInfo& rhs);
286 _NetworkInfoImpl* __pNetworkInfoImpl;
288 friend class _NetworkInfoImpl;
291 }} //Tizen::Telephony
292 #endif // _FTEL_NETWORK_INFO_H_