Symbian OS 写入专用APN

news/2024/11/21 1:46:54/

特定接入点的查找/ 创建  

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;


http://www.ppmy.cn/news/624956.html

相关文章

ThinkPad安装Windows XP系统BIOS配置

ThinkPad安装Windows XP系统BIOS配置 2014-07-17 理论上机器是支持安装xp系统的&#xff0c;但考虑到目前xp系统已经退市了&#xff0c;如果对机器系统版本没有特殊的要求&#xff0c;建议您可以更换安装其他高版本的操作系统。如果您确实需要安装xp系统&#xff0c;在系统安装…

快速傅里叶变换FFT

// 快速傅里 叶变换FFT的C语言算法彻底研究 // LED音乐频谱显示的核心算法就是快速傅里叶变换&#xff0c;FFT的理解和编程还是比较难的&#xff0c;特地撰写此文分享一下研究成果。 // 一、彻底理解傅里叶变换 // 快速傅里叶变换&#xff08;Fast Fourier Transform)是离散傅里…

thinkpad x200 linux 版本,让ThinkPad X200在opensuse下更完美!

让ThinkPad X200在opensuse下更完美&#xff01; 发布时间:2009-11-04 14:15:49来源:红联作者:lic 这里发帖真有点麻烦&#xff0c;拷贝有几个连接掉了&#xff0c;大家先看文字&#xff0c;连接可以从原文找&#xff01; 原文&#xff1a;http://pcdigger.cn/blog/?p2586 看了…

联想收购神秘公司主要业务猜想

联想集团1月28日宣布收购一家名为Switchbox实验室的创业公司&#xff0c;《PCWorld》杂志将Switchbox称作“神秘的创业公司”。 媒体及联想并没有公布这家神秘公司的业务及产品&#xff0c;不过倒是公布了公司创始人Sievert曾经是微软的Windows营销副总裁&#xff0c;从公司名…

Win10下安装双系统Ubuntu18.04(适合ThinkPadW540)

重点参考&#xff1a; https://blog.csdn.net/xrinosvip/article/details/80428133 该作者的文章非常好&#xff0c;我参考的其它文章均导致安装失败&#xff0c;大概是由于我的电脑型号吧。利用W540进行双系统安装的话&#xff0c;这个文章里有几个重要知识点&#xff0c;如下…

IDEA 或者SVN修改老项目的svn地址

公司svn地址修改了&#xff0c;ip修改了。本地还有代码没提交。这里介绍一下怎么在IDEA或svn修改为新地址&#xff0c;然后代码就可以直接提交了。网上也有文章介绍&#xff0c;但其中没注明一个关键点&#xff0c;导致很多人修改不成功。所以有了这篇文章。 IDEA下修改svn地址…

为什么扩散模型能如此迅速地取代 GAN?看完这篇文章你就懂了

在人工智能领域&#xff0c;文本生成和图像生成一直是备受关注的领域。GAN (Generative Adversarial Networks) 技术作为当前最流行的生成模型之一&#xff0c;在这个领域内占据了重要地位。但是&#xff0c;随着技术的不断发展和应用&#xff0c;它的局限性也逐渐显露出来。而…

简单通讯录系统

简单介绍&#xff1a;程序设计B作业&#xff0c;一个版本用数组写的&#xff0c;另一个版本用STL里面的map写的。 数组版本&#xff1a; #include <iostream> #include <string.h> using namespace std; //我实在是没想到怎么用动态数组 class Person { public:P…