首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian >> Symbian开发 >> 正文
如何判断程序是否被自动启动或者被用户启动
作者:Lee 译    文章来源:newlc    更新时间:2007-3-26 11:19:38
有时候能够检查出在系统启动的时候哪些应用程序被“Startup List Api(只有S60 3rd可以使用)”或者用户启动,和通过“Symbian Signed”,管理启动程序的应用是一个很通用的程序,这篇文章将告诉你如何做到。
首先,你必须修改程序注册文件,并在APP_REGISTRATION_INFO资源中添加一些opaque_data字段,内容和直并不是那么重要,你只需要按下面的方式指定:
CODE:
#include <appinfo.rh>
#include <uikon.rh>   

RESOURCE APP_REGISTRATION_INFO
{
  ...
  opaque_data = r_startup_detect;
}      

   
RESOURCE NUMBER_INT8 r_startup_detect
{
value = 1;
}

当应用程序运行时,opaque_data和其他运行参数将被忽略。因此,判断是否在运行或者不允许(区分是否应用程序被允许在启动的时候或者被用户启动)。

这样,你可以重载AppUI中的ProcessCommandParametersL()函数
T
CODE:
Bool CMyAppUi::ProcessCommandParametersL( CApaCommandLine &aCommandLine )
{
  if(aCommandLine.OpaqueData().Length() > 0)
  {
      // Opaque data exists, app. has been manually started from the menu
  }
  else
  {
      // App. has been auto-started -> exit if auto-start in settings is OFF
  }
   return CEikAppUi::ProcessCommandParametersL( aCommandLine );
}
你也要注意,通过Symbian Signed需要你的应用程序有一个允许禁止自动启动的属性的选项设置。你需要加入操作代码来实现它,在 Forum Nokia Technical Library中描叙得比较好。

这篇文章仅适用于 S60 3RD,接下来的版本也将支持这个属性

译文地址:http://www.symbianx.cn/viewthread.php?tid=5&extra=page%3D1
原文地址:http://www.newlc.com/How-to-detect-if-an-application-is.html
相关文章:
在S60中、正常UIQ3中使用设备无关字体变斜的解决方案
S60 3rd下实现Video Call 与 VoIP Call
symbian学习的开始
Symbian 应用软件开发、测试与S60 平台安全常见问题问答
Symbian开发环境设置(Microsoft Visual Studio.Net 2003工具)已测试通过
S60 3rd版下,如何运行控制台程序?
Symbian OS 应用程序在手机上无法运行的种种原因
S60系列用户界面显示器规范
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号