如何实现用户自定义开机自启动

1,使用Startup List Management API实现开机自启动
2,如何让用户可以在程序中设置让程序是否随机启动,重载AppUI中的ProcessCommandParametersL()函数就可以了(自启动后关闭==不启动)
1.1 在data目录下创建一个boot resource file,名字为XXXX.rss, 其中XXXX为UID3。

如程序UID3 为 0xEEAE36E8就命名为EEAE36E8.rss           注意要把0x去掉
#include <startupitem.rh>
RESOURCE STARTUP_ITEM_INFO startexe
{
 executable_name = \\
sys\\bin\\programToStart.exe; //换成你程序名字  注意这里要看mmp里具体的exe命名,为因carbide自生成的会在后边加上nameUID3.exe
    recovery = EStartupItemEXPolicyNone;
}
1.2更新你的MMP文件
SOURCEPATH      ../data
START RESOURCE XXXX.rss
END
1.3更新你的PKG文件,中括号不要丢了!
“/epoc32/data/XXXX.rsc”- “c:\private\101f875a\import/[XXXX].rsc”
有以下几点限制:必须装在c盘,必须用开发者证书。

Note: XXXX.rsc是XXXX.rss生成的,如果是XXXX.r01,这里改革为XXXX.r01即可

如果一切顺利,程序可以自己随着手机开机而自己启动了,但是如何让用户可以在程序中设置让程序不要随机启动呢?
修改程序的注册文件YourAppName_reg.rss:
#include <appinfo.rh>
#include <uikon.rh>  
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 );
}

本文来源于Yuelongr http://www.yuelongr.cn/ 原文地址:http://www.yuelongr.cn/post/16.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值