×
Namespaces

Variants
Actions

如何同步获取手机串号

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
hoolee 在 05 Feb 2008 创建
最后由 hamishwillee 在 15 Dec 2011 编辑
  • 开发伙伴平台:

S60 3rd Edition


  • 详细描述

目前在S60第三版上只有一个方法可以用来获得手机串号,就是通过CTelephony,但它只能提供异步的方法来获取手机串号。


下列方法将无法正常工作:

CTelephony::TPhoneIdV1Pckg phoneIdPckg;
 
TRequestStatus status;
 
iTel = CTelephony::NewL();
 
iTel->GetPhoneId( status, phoneIdPckg );
 
User::WaitForRequest( status );

尽管开发者可以通过活动对象使用异步方法来获取穿好,但实际操作却不甚方便。


  • 解决方案

设计一个活动对象同步获取手机串号:

void CPhoneInfo::GetPhoneIdL( )
 
{
 
if ( IsActive() )
 
{
 
return;
 
}
 
 
 
iTelApiCmd = EGetPhoneId;
 
 
 
#if !defined(__WINS__) && !defined(__WINSCW__)
 
iTel->GetPhoneId( iStatus, iPhoneIdPckg );
 
SetActive();
 
iWait.Start();
 
#endif
 
}

按照如下方式定义iWait:

CActiveSchedulerWait iWait;

在活动对象的RunL方法中为:

void CPhoneInfo::RunL()
 
{
 
if ( iTelApiCmd != EAsyncEvent )
 
{
 
iWait.AsyncStop();
 
}
 
 
 
switch( iTelApiCmd )
 
{
 
case EGetPhoneId :
 
{
 
iNotify.GetPhoneIdApiCompleteL( iStatus.Int(), iPhoneId );
 
}
 
break;
 
 
 
default :
 
break;
 
}
 
return;
 
}
This page was last modified on 15 December 2011, at 09:47.
55 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×