首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Symbian >

关于接入点信息的获取有关问题

2012-01-18 
关于接入点信息的获取问题想要在S60 v5和Symbian^3的机器上面获取接入点信息,但是只能获取到承载方式的前

关于接入点信息的获取问题
想要在S60 v5和Symbian^3的机器上面获取接入点信息,但是只能获取到承载方式的前两个接入点的信息,而获取不到全部的接入点的信息,以下是获取接入点的代码:
  CCommsDatabase* commsDB = CCommsDatabase::NewL(EDatabaseTypeIAP);
CleanupStack::PushL(commsDB);
CCommsDbTableView* tableIAP =
commsDB->OpenTableLC(TPtrC(OUTGOING_GPRS));
//CleanupStack::PushL(commsDB);

User::LeaveIfError(tableIAP->GotoFirstRecord()); //转到第一条记录

TInt err = KErrNone;

do
{
TBuf<32> apn;
TBuf<32> commdb_name;
TUint32 id;
tableIAP->ReadTextL(TPtrC(GPRS_APN), apn); //获取当前接入点的名称
tableIAP->ReadTextL(TPtrC(COMMDB_NAME), commdb_name);
CRLog::Log(apn);
CRLog::Log(commdb_name);
tableIAP->ReadUintL(TPtrC(COMMDB_ID), id); //获取当前接入点的IapId
if (apn.Compare(_L("cmwap")) == 0)
{
selectIap = id;
break;
}

err = tableIAP->GotoNextRecord(); //转到下一条记录
}
while (err == KErrNone);
CleanupStack::PopAndDestroy(tableIAP); // view
CleanupStack::PopAndDestroy(commsDB); // commDB

[解决办法]
获取不到全部的接入点的信息楼主可以考虑使用commDb->OpenIAPTableViewMatchingBearerSetLC(ECommDbBearerCSD|ECommDbBearerGPRS|ECommDbBearerWLAN|ECommDbBearerVirtual,
ECommDbConnectionDirectionOutgoing);
“获取到的接入点的IapId和实际的接入点的ID号差了1”应该不至于,可能楼主的手机id为2的接入点信息不完整,建议使用OpenViewOnProxyRecordLC读取出接入点的代理信息,看看PROXY_SERVER_NAME字段是否是移动的wap网关,这样判断更合理些。

热点排行