Series 60 SDK官方并不支持访问当前的GSM cell Id。
因此你首先需要把etel.h和etelbgsm.h从9200 SDK拷贝到/Symbian/6.1/Series60/Epoc32/Include目录下。
Mmp文件里需要加入:
LIBRARY gsmbas.lib
LIBRARY etel.lib
下面的代码不能运行在emulator上,只能在真机上运行:
RBasicGsmPhone phone;
RTelServer server;
User::LeaveIfError( server.Connect() );
// load a phone profile
_LIT(KGsmModuleName, "phonetsy.tsy");
User::LeaveIfError( server.LoadPhoneModule( KGsmModuleName ) );
// initialize the phone object
RTelServer::TPhoneInfo info;
User::LeaveIfError( server.GetPhoneInfo( 0, info ) );
User::LeaveIfError( phone.Open( server, info.iName ) );
MBasicGsmPhoneNetwork::TCurrentNetworkInfo ni;
User::LeaveIfError( phone.GetCurrentNetworkInfo( ni ) );
接下来可以通过ni访问CellId、iLocationAreaCode和iNetworkInfo.iShortName等。
最后确认关闭了资源:
Phone.Close();
Server.UnloadPhoneModule(KGsmModuleName);
Server.Close();
下面的信息也可以获得:
厂商Id,串号:GetPhoneInfo()
BER,电池状态:GetX(此函数为同步)
信号量:SignalStrengthNotification()