ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在C++下实现的程序拨号代码(转)

在C++下实现的程序拨号代码(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-06-22 15:39:07 0 删除 编辑

呵呵,下面是一段拨号代码(摘自Nokia的例子),代码虽然不多,但很多地方都值得学习,例如:对R类的使用,清理;server/client机制;参数传递机制;编码风格;注释风格等等自己体会吧。

在阅读代码之前请熟悉Symbian OS C++中的ETel结构,以及它的核心类RTelServer,RPhone,RLine,RCall.

下面是代码内容:

void DialNumberL(const TDesC& aPhoneNumber)

{

//Create a connection to the tel server
RTelServer server;
CleanupClosePushL(server);
User::LeaveIfError(server.Connect());

//Load in the phone device driver
User::LeaveIfError(server.LoadPhoneModule(KTsyName));

//Find the number of phones available from the tel server
TInt numberPhones;
User::LeaveIfError(server.EnumeratePhones(numberPhones));

//Check there are available phones
if (numberPhones < 1)
{
User::Leave(KErrNotFound);
}

//Get info about the first available phone
RTelServer::TPhoneInfo info;
User::LeaveIfError(server.GetPhoneInfo(0, info));

//Use this info to open a connection to the phone, the phone is identified by its name
RPhone phone;
CleanupClosePushL(phone);
User::LeaveIfError(phone.Open(server, info.iName));

//Get info about the first line from the phone
RPhone::TLineInfo lineInfo;
User::LeaveIfError(phone.GetLineInfo(0, lineInfo));

//Use this to open a line
RLine line;
CleanupClosePushL(line);
User::LeaveIfError(line.Open(phone, lineInfo.iName));

//Open a new call on this line
TBuf <100> newCallName;
RCall call;
CleanupClosePushL(call);
User::LeaveIfError(call.OpenNewCall(line, newCallName));

//newCallName will now contain the name of the call
User::LeaveIfError(call.Dial(aPhoneNumber));

//Close the phone, line and call connections and remove them from the cleanup stack
//NOTE: This does not hang up the call
CleanupStack::PopAndDestroy(3);//phone, line, call

//Unload the phone device driver
User::LeaveIfError(server.UnloadPhoneModule(KTsyName));

//Close the connection to the tel server and remove it from the cleanup stack
CleanupStack::PopAndDestroy(&server);
} //end


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-126315/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    3481
  • 访问量
    3018092