S60 3rd开机启动 判断“手动启动”与“开机启动”
2010-03-13 20:20:00 来源:WEB开发网1、开机启动。
假设你的应用ID为:E74914FC
1) 在data下新建一个文件, [E74914FC].rss(注意加上[])
#include
RESOURCE STARTUP_ITEM_INFO dispatcher
{
executable_name = "!:\sys\bin\AutoStart.exe";
recovery = EStartupItemExPolicyNone;
}
此处的AutoStart.exe是你的应用程序文件名。
2) 在mmp文件中增加以下代码
START RESOURCE [E74914FC].rss
TARGETPATH private101f875aimport
END
确保:
LANG SC
CAPABILITY ReadUserData
注意“private101f875aimport”不能够变。
3) 在pkg文件中增加以下代码
"$(EPOCROOT)epoc32eleasewinscwudebzprivate101f875aimport[E74914FC].rSC"-"!:private101f875aimport[E74914FC].rSC"
如果是采用carbidec++编译,那么你可以使用上述代码。也可修改成绝对路径,路径名视你的安装目录而定。
例如:
"C:Symbian9.1S60_3rdEpoc32Datazprivate101f875aimport[E74914FC].rSC"-"!:private101f875aimport[E74914FC].rSC"
2、取消开机启动
参考:http://discussion.forum.nokia.com/forum/showthread.php?t=154901&page=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)、 重载AppUI中的ProcessCommandParametersL()函数
{
if(aCommandLine.OpaqueData().Length() > 0)
{
// 用户手动启动,存在OpaqueData
}
else
{
if(读文件成功 && 值==1)
Exit();
// 程序自动启动,存在OpaqueData。
// 可以在这里判断是否设置为不自动启动, 调用Exit()函数退出
}
return CEikAppUi::ProcessCommandParametersL( aCommandLine );
}
更多精彩
赞助商链接