手机'我在哪里'之实现

很多电信公司提供了'我在哪里'这种功能,实现起来其实比较简单,主要应用了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对应清华大学.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值