手機'我在哪裏'之實現

很多電信公司提供了'我在哪裏'這種功能,實現起來其實比較簡單,主要應用了GSM協議中的一些字段來標示當前的areaid,就像IMSI中的前幾個字符來標示當前網絡所屬國家一樣。

在S60中的實現:

#include <ETELBGSM.H>

RTelServer aTelServer;
 _LIT(KTsyName, "phonetsy.tsy");
 aTelServer.Connect();
 // Load the profile of the phone
 aTelServer.LoadPhoneModule( KTsyName );
 // Get the phone name
 RTelServer::TPhoneInfo phoneInfo;
 User::LeaveIfError(aTelServer.GetPhoneInfo(0,phoneInfo));
 // Open the phone by name
 RBasicGsmPhone phone;
 User::LeaveIfError(phone.Open(aTelServer,phoneInfo.iName));
 MBasicGsmPhoneNetwork::TCurrentNetworkInfo aNetworkInfo;
 phone.GetCurrentNetworkInfo( aNetworkInfo);
 User::LeaveIfError(phone.GetCurrentNetworkInfo( aNetworkInfo));
 我在哪裏?在aNetworkInfo.iLocationAreaCode;
 phone.Close();
 aTelServer.UnloadPhoneModule( KTsyName );
 aTelServer.Close(); 

如上,得到所謂的areaid以後,對應一個相當大的數據庫,就可以查到areaid對應的地區了,例如:4xxx對應清華大學.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章