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 * MyClass::GetNetworkInfo(void)
49 * result r = E_SUCCESS;
55 * String operatorName;
57 * NetworkInfo networkInfo;
59 * NetworkManager* pNetworkManager = new NetworkManager();
61 * r = pNetworkManager->Construct(null);
64 * delete pNetworkManager;
68 * r = pNetworkManager->GetNetworkInfo(networkInfo);
71 * delete pNetworkManager;
75 * mnc = networkInfo.GetMnc();
76 * mcc = networkInfo.GetMcc();
77 * cellId = networkInfo.GetCellId();
78 * lac = networkInfo.GetLac();
79 * plmn = networkInfo.GetPlmn();
80 * operatorName = networkInfo.GetOperatorName();
82 * delete pNetworkManager;
88 class _OSP_EXPORT_ NetworkInfo
89 : public Tizen::Base::Object
93 * This is the default constructor for this class.
100 * Copying of objects using this copy constructor is allowed.
104 * @param[in] rhs An instance of %NetworkInfo
106 NetworkInfo(const NetworkInfo& rhs);
109 * This destructor overrides Tizen::Base::Object::~Object().
113 virtual ~NetworkInfo(void);
116 * Gets the Mobile Network Code (MNC) of the network.
120 * @privilege %http://tizen.org/privilege/telephony
122 * @return The MNC of the network
123 * @exception E_SUCCESS The method is successful.
124 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
125 * @remarks The specific error code can be accessed using the GetLastResult() method.
127 int GetMnc(void) const;
130 * Gets the Mobile Country Code (MCC) of the network.
134 * @privilege %http://tizen.org/privilege/telephony
136 * @return The MCC 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 GetMcc(void) const;
144 * Gets the Public Land Mobile Network (PLMN).
147 * @brief <i> [Compatibility] </i>
151 * @compatibility This method has compatibility issues with OSP compatible applications. @n
152 * For more information, see the issue description for @ref CompNetworkInfoGetPlmnPage "here".
155 * @privilege %http://tizen.org/privilege/telephony
157 * @return The PLMN name
158 * @exception E_SUCCESS The method is successful.
159 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
160 * @remarks The specific error code can be accessed using the GetLastResult() method.
162 Tizen::Base::String GetPlmn(void) const;
166 * @page CompNetworkInfoGetPlmnPage Compatibility for GetPlmn()
167 * @section CompNetworkInfoGetPlmnPageIssueSection Issues
168 * Implementation of this method in Tizen API versions prior to 2.1 has the following issue: @n
169 * -# The method returns an alphabetic name of PLMN.
171 * @section CompNetworkInfoGetPlmnPageSolutionSection Resolutions
172 * -# The method returns a numeric name of PLMN-ID(MCC+MNC).
173 * To get the alphabetic name of PLMN, it is recommended to use Tizen::Telephony::GetOperatorName().
177 * Gets the current cell ID.
181 * @privilege %http://tizen.org/privilege/telephony
183 * @return The current cell ID
184 * @exception E_SUCCESS The method is successful.
185 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
186 * @remarks This cell ID is provided using only NetworkManager::GetNetworkInfo() when connected to a network.
187 * @remarks The specific error code can be accessed using the GetLastResult() method.
189 int GetCellId(void) const;
192 * Gets the current Location Area Code (LAC).
196 * @privilege %http://tizen.org/privilege/telephony
198 * @return The current LAC
199 * @exception E_SUCCESS The method is successful.
200 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
201 * @remarks This LAC is provided using only NetworkManager::GetNetworkInfo() when connected to a network.
202 * @remarks The specific error code can be accessed using the GetLastResult() method.
204 int GetLac(void) const;
207 * Gets the operator name.
211 * @privilege %http://tizen.org/privilege/telephony
213 * @return The operator name
214 * @exception E_SUCCESS The method is successful.
215 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
216 * @remarks The specific error code can be accessed using the GetLastResult() method.
218 Tizen::Base::String GetOperatorName(void) const;
221 * Checks whether the specified instance of %NetworkInfo equals the current instance.
225 * @return @c true if the specified instance equals the current instance, @n
227 * @param[in] rhs An instance of %NetworkInfo
228 * @remarks The method returns @c false if the specified object is not %NetworkInfo.
230 virtual bool Equals(const Tizen::Base::Object& rhs) const;
233 * Gets the hash value of the current instance.
237 * @return The hash value of the current instance
239 virtual int GetHashCode(void) const;
242 * Gets the received signal strength indication of a modem device.
246 * @privilege %http://tizen.org/privilege/telephony
247 * @feature %http://tizen.org/feature/network.telephony
248 * @return The current RSSI @n
249 * The possible RSSI value ranges from @c 0 to @c 100.
250 * @exception E_SUCCESS The method is successful.
251 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
252 * @exception E_SYSTEM A system error has occurred.
253 * @exception E_UNSUPPORTED_OPERATION The Emulator or target device does not support the required feature. @b Since: @b 2.1
254 * For more information, see <a href="../org.tizen.gettingstarted/html/tizen_overview/manifest_features.htm">Application Filtering</a>.
256 * - The specific error code can be accessed using the GetLastResult() method.
257 * - Before calling this method, check whether the feature is supported by %Tizen::System::SystemInfo::GetValue() methods.
259 static int GetRssi(void);
262 * Copying of objects using this copy assignment operator is allowed.
266 * @return The reference of this instance
267 * @param[in] rhs An instance of %NetworkInfo
269 NetworkInfo& operator=(const NetworkInfo& rhs);
272 _NetworkInfoImpl* __pNetworkInfoImpl;
274 friend class _NetworkInfoImpl;
277 }} //Tizen::Telephony
278 #endif // _FTEL_NETWORK_INFO_H_