监测闹铃


CS001120
 开发伙伴平台:
S60 3rd Edition

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

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

Contents
[hide]
 1 MMP文件
 2 头文件
 3 源文件
 4 后记

[edit] MMP文件
需要下列能力和链接库:
CAPABILITY ReadUserData WriteUserData ReadDeviceData WriteDeviceData
 
LIBRARY alarmclient.lib LIBRARY alarmshared.lib

[edit] 头文件
#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;
 };
[edit] 源文件
#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();
 }

[edit] 后记
当你开始监测后,每个事件都会调用RunL函数,其中iStatus为可能的错误代码。但这里iStatus为非负数,表示事件状态。
这里的闹铃ID存储的是闹铃id变量,当调用NotifyChange时将会给闹铃服务。使用这个ID我们可以获得闹铃的详细信息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值