×
Namespaces

Variants
Actions

监测闹铃

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

文章
huwei319 在 11 Nov 2008 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

CS001120

  • 开发伙伴平台:

S60 3rd Edition


  • 详细描述

RASCliSession提供了一个简单有效的方法可以用来检测闹铃服务事件。包括对闹铃的修改事件触发等。这里包括时钟和日历闹铃的处理。


这个代码片段需要ReadUserData, WriteUserData, ReadDeviceData和WriteDeviceData能力。这里光自签名是执行不了的需要开发者证书才行。


Contents

MMP文件

需要下列能力和链接库:

CAPABILITY ReadUserData WriteUserData ReadDeviceData WriteDeviceData 
 
LIBRARY alarmclient.lib LIBRARY alarmshared.lib


头文件

#include <e32base.h> 
#include <ASCliSession.h>
 
class CCalAlarmObserver : public CActive
{
public:
void ConstructL();
CCalAlarmObserver();
~CCalAlarmObserver();
protected:
void DoCancel();
void RunL();
private:
void StartMonitoring();
private:
MMyLogCallBack& iCallBack;
RASCliSession iASCliSession;
TAlarmId iAlarmId;
};

源文件

#include <ASShdDefs.h>
#include <ASShdAlarm.h>
 
CCalAlarmObserver::CCalAlarmObserver():CActive(EPriorityStandard)
{}
 
CCalAlarmObserver::~CCalAlarmObserver()
{
Cancel();
iASCliSession.Close();
}
 
void CCalAlarmObserver::ConstructL()
{
CActiveScheduler::Add(this);
iASCliSession.Connect();
StartMonitoring();
}
 
void CCalAlarmObserver::StartMonitoring()
{
iASCliSession.NotifyChange(iStatus, iAlarmId);
SetActive();
}
 
void CCalAlarmObserver::RunL()
{
switch(iStatus.Int())
{
case EAlarmChangeEventState:
break;
case EAlarmChangeEventStatus:
break;
case EAlarmChangeEventCharacteristics:
break;
case EAlarmChangeEventAlarmDeletion:
break;
case EAlarmChangeEventAlarmAddition:
break;
case EAlarmChangeEventTimerExpired:
break;
//.... Check other states is needed
default:
break;
};
 
TASShdAlarm allarm;
if(iASCliSession.GetAlarmDetails(iAlarmId,allarm) == KErrNone)
{
// allarm.Status()
// allarm.State()
// allarm.NextDueTime()
// ...
}
 
StartMonitoring();
}
 
void CCalAlarmObserver::DoCancel()
{
iASCliSession.NotifyChangeCancel();
}


后记

当你开始监测后,每个事件都会调用RunL函数,其中iStatus为可能的错误代码。但这里iStatus为非负数,表示事件状态。

这里的闹铃ID存储的是闹铃id变量,当调用NotifyChange时将会给闹铃服务。使用这个ID我们可以获得闹铃的详细信息。

This page was last modified on 15 December 2011, at 09:26.
39 page views in the last 30 days.
×