symbian 开机自启动实现

  主要有两个步骤:

  1,使用Startup List Management API实现开机自启动

  2,重载AppUI中的ProcessCommandParametersL()函数确定是否关闭(自启动后关闭==不启动)

  1.1 在data目录下创建一个boot resource file,名字为XXXX.rss, 其中XXXX为UID3。

  #include

  RESOURCE STARTUP_ITEM_INFO startexe

  {

  executable_name = /sys/bin/programToStart.exe; //换成你程序名字

  recovery = EStartupItemExPolicyNone;

  }

  1.2更新你的MMP文件

  SOURCEPATH ..data

  START RESOURCE XXXX.rss

  END

  1.3更新你的PKG文件,中括号不要丢了!

  “epoc32datayyyy.rsc”- “c:private101f875aimport[yyyy].rsc”

  有以下几点限制:必须装在c盘,必须用开发者证书。

  如果一切顺利,程序可以自己随着手机开机而自己启动了,但是如何让用户可以在程序中设置让程序不要随机启动呢?

  2.1修改程序的注册文件YourAppName_reg.rss:

  #include

  #include

  RESOURCE APP_REGISTRATION_INFO

  {

  //其他原有代码

  opaque_data = r_startup_detect;

  }

  RESOURCE NUMBER_INT8 r_startup_detect

  {value = 1;}

  2.2 重载AppUI中的ProcessCommandParametersL()函数

  Bool CMyAppUi::ProcessCommandParametersL( CApaCommandLine &aCommandLine )

  {

  if(aCommandLine.OpaqueData().Length() > 0)

  {

  // 用户手动启动,存在OpaqueData

  }

  else

  {

  // 程序自动启动,存在OpaqueData。

  // 可以在这里判断是否设置为不自动启动, 调用Exit()函数退出

  }

  return CEikAppUi::ProcessCommandParametersL( aCommandLine );

  }

你可能感兴趣的:(symbian 开机自启动实现)