注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Simon

 
 
 

日志

 
 

Symbian 自定义桌面图像的响应  

2010-12-01 14:32:00|  分类: Symbian C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近研究了一下在待机界面上点击自己的图标和文字去响应对应的APP.
总结一下,为自己走过的路留个脚印吧,也许可以供有需要的人参考.也算是我为Open source一小点贡献吧.

直接进入主题了.
本想找一个类似于时间控件的Plugin,画到桌面上.没有找到解决方案.希望NOKIA能尽快推出解决方法.
这样只能在桌面上画自己的图标或者文字,整个需求的难点在于,如何捕获到图标文字的焦点.
没有找到对应的解决方案,只能用替代方法解决,响应特定的按键来调起APP.

所需要用的技术如下:
1.监控桌面
2.图像文字的绘制
3.按键监控//注在应用程序在后台的情况下监控
4.响应指定的APP

图像文字绘制比较简单,在这里就不谈了.
1.监控桌面
需要用到捕获焦点变化事件EEventFocusGroupChanged. EEventFocusGroupChanged.事件产生的必要条件:
a.焦点事件是打开的
b.有焦点发生变化
代码如下:
void *****AppUi::ConstructL()
    {
    BaseConstructL();
    iEikonEnv->RootWin().EnableFocusChangeEvents();//注这句是必须的(必要条件a)
    ...................
    }

void *****AppUi::HandleWsEventL()
   {
       const TUid KUidMenu = {  0x101f4cd2 }; // The UID of the Menu applciation//用于模拟器待机桌面
       const TUid KUidPhoneApp = { 0x100058b3 };  // for S60 2nd
       const TUid KUidIdleApp = { 0x101FD64C };   // for S60 3rd
       if ( aEvent.Type() == EEventFocusGroupChanged )
    {
       RWsSession& ws = iEikonEnv->WsSession();
       TInt wgid = ws.GetFocusWindowGroup();
       CApaWindowGroupName* gn = CApaWindowGroupName::NewLC(ws, wgid);
       TUid aCurAppUid = gn->AppUid();
       CleanupStack::PopAndDestroy(gn);

       if ( aCurAppUid == KUidPhoneApp )
       {
               //此时为桌面,绘制指定的图像,文字
           }
        }
   }

2.按键监控
  主要用到RWindowGroup的CaptureKey方法
  在NOKIA论坛里可以找到源码.搜索CKeyCapturer
4.响应指定的APP
  RApaLsSession appArcSession;
  ret = KErrNone;
  CleanupClosePushL(appArcSession);
  ret = appArcSession.Connect();
  CApaCommandLine* cmdline = CApaCommandLine::NewLC();
  TRAP(ret, cmdline->SetCommandL(EApaCommandRun));
  TRAP(ret, cmdline->SetExecutableNameL(****Name);//加载指定应用程序的名字
  ret = appArcSession.StartApp(*cmdline);//启动指定的APP
  CleanupStack::PopAndDestroy(2, &appArcSession);
到此,整个需求处理完成!!
  评论这张
 
阅读(357)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018