Symbian OS 写入专用APN
来源:互联网 发布:python 考试系统怎么写 编辑:程序博客网 时间:2024/05/17 01:34
特定接入点的查找/创建
1. Overview
特定接入点的查找/创建应该是这样的一个过程。首先你从一个配置文件里面读出你要选择的AP的名字(一般情况下我们是知道要用那个接入点的,而且为了方便配置一般也把它写到配置文件中去)。在得到这个名字后,我们就遍历机器上所有的接入点,查找是否有我们需要的,如果有我们就返回那个接入点的索引,如果没有就要在设备上创建一个AP,创建这个AP的参数也存在配置文件中,成功创建后返回其索引以备后用。
2. Code
//从配置文件中读出接入点的名称
TBuf<64> apnConnName;
GetAPNnameFromConfig(apnConnName);
apnConnName.LowerCase();
//遍历通信数据库,寻找对应的接入点的索引
TUint32 iapId(-1);
CCommsDatabase* commDb = CCommsDatabase::NewL();
CleanupStack::PushL(commDb);
CCommsDbTableView* view = commDb->OpenTableLC(TPtrC(IAP));
TFileName iapName;
User::LeaveIfError(view->GotoFirstRecord());
do
{
view->ReadTextL(TPtrC(COMMDB_NAME), iapName);
iapName.LowerCase();
if (!iapName.Compare(*apName))
{
view->ReadUintL(TPtrC(COMMDB_ID), iapId);
break;
}
}
While (KErrNone == view->GotoNextRecord());
CleanupStack::PopAndDestroy(2); // view, commDb
CleanupStack::PopAndDestroy(apName);
//找到就返回
if (iapId != -1)
return iapId;
//没有找到就创建一个,从配置文件中读出参数
TInt apnDataBearer;
TBuf<64> apnAccessPointName;
TBool apnAuthentication;
TBuf<64> apnProxyNameAddr;
TInt apnProxyPortNumber;
GetAPNBearerFromConf(apnDataBearer);
GetAPNnameFromConf(apnAccessPointName);
GetAPNAuthFromConf(apnAuthentication);
GetAPNProxyNameFromConf(apnProxyNameAddr);
GetAPNProxyPortFromConf(apnProxyPortNumber);
//创建一个接入点
CApAccessPointItem* apn = CApAccessPointItem::NewLC();
apn->SetNamesL( apnConnName );
apn->SetBearerTypeL( (TApBearerType)apnDataBearer );
apn->WriteLongTextL( EApGprsAccessPointName, apnAccessPointName );
if( apnAuthentication )
{
apn->WriteBool( EApGprsDisablePlainTextAuth, ETrue );
apn->WriteBool( EApGprsDisablePlainTextAuth, ETrue );
}
else
{
apn->WriteBool( EApGprsDisablePlainTextAuth, EFalse );
}
if( apnProxyNameAddr.Length() )
{
apn->WriteLongTextL( EApProxyServerAddress, apnProxyNameAddr );
apn->WriteUint( EApProxyPortNumber, (TUint)apnProxyPortNumber );
}
CCommsDatabase* commDb = CCommsDatabase::NewL();
CleanupStack::PushL( commDb );
CApDataHandler* handler = CApDataHandler::NewLC( *commDb );
TInt commErr = commDb ->BeginTransaction();
newApId = (TInt32)handler->CreateFromDataL( *apn );
commErr = commDb->CommitTransaction();
CleanupStack::PopAndDestroy( handler );
CleanupStack::PopAndDestroy( commDb );
CleanupStack::PopAndDestroy( apn );
return newApId;
- Symbian OS 写入专用APN
- Symbian 创建APN
- symbian os
- Symbian OS
- Symbian OS
- 客户端如何通过专用APN访问WebService
- Symbian OS SDKs简介
- Symbian OS 错误码
- Symbian OS SDKs简介
- Symbian OS Error Codes
- Symbian OS 错误码
- Symbian OS 基本数据类型
- Symbian OS Error Codes
- Symbian OS 精要
- Symbian OS 精要
- 基础知识----Symbian OS
- Symbian OS:线程编程
- Symbian OS Error Codes
- 改善你的jQuery的25个小贴士
- SQL 语句中对于like 的调优
- 软件设计师与嵌入式系统设计师
- 基于mini2440的qtopia应用程序开发之一:搭建平台+友善之臂的错误分析
- o3d教程3 - 模型变换
- Symbian OS 写入专用APN
- 客户端AI和服务器端AI
- (转)C++中extern “C”含义深层探索
- 友善micro2440(s3c2440) U-boot移植过程
- ExtJs与JSON格式数据绑定的方法
- symbian创建新的接入点
- c#内存管理
- 求职记
- 调试windows service的OnStart事件及调试service的一些方法汇总