×
Namespaces

Variants
Actions

如何利用第三版Startup List Management API自启动程序

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
文章
翻译:
hoolee
最后由 hamishwillee 在 30 May 2013 编辑

Contents

启动列表管理API

Symbian第三版EXE程序自启动的步骤

1. 在你的项目目录中生成.RSS(如<PRJ_DIRRECTORY>\DATA目录中,其他RSS文件所在之处)如: 06000001.rss

这里用数字作为文件名,这和项目的UID名一致。可以通过它来区分资源,在添加到pkg文件中也是一个很好的参考提示。但名字实际和业务无关。增加下列代码到新的rss文件中:

#include <startupitem.rh>
 
RESOURCE STARTUP_ITEM_INFO startexe
{
executable_name = "c:\\sys\\bin\\StartEXE.exe";
recovery = EStartupItemExPolicyNone;
}

在上述代码中:

  • c: 表示程序将要安装的位置
  • 如果要让用户自己选择安装位置,那就要用!:开头
  • StartEXE.exe是要启动程序的名字,这个是程序自己定义的,但要和MMP文件中的TARGET定义值一致

2. 打开你的.MMP文件

增加下列行,以便编译时包含新资源

START RESOURCE ..\DATA\06000001.rss
END
  • 上述路径和MMP文件位置相关,通常为<PRJ_DIRECTORY>\GROUP,这个路径必须指明新的RSS文件,注意其路径就是第一步所述的

3. 增加下列项到.PKG文件中:

"C:\Symbian\9.1\S60_3rd_MR\Epoc32\data\06000001.rsc"-"c:\private\101f875a\import\[06000001].rsc"
  • 程序能够安装到任何盘符(手机或存储卡)但[uid].rsc必须安装到c:\private\101f875a\import\ .
  • C:\Symbian\9.1\S60_3rd_MR\提供了安装路径(根据你的SDK的EPOCROOT).如果你的程序只在Carbide.c++下运行可以替换为$(EPOCROOT)
  • 这里*.rsc是*.rss编译后获得的. 编译后才会生成,因此扩展名可能根据程序支持的语言不同,不一定包括"SC",如扩展名可能为*.r01.参考Internationalization.
  • 文件必须要拷贝到盘符c:中特定区域, 因此目标路径都为: c:\private\101f875a\import\
  • 拷贝到手机后文件名要进行改变. 即为Package UID(定义在PKG文件头中的)但不要有0x前缀,而且要用中括号包起来([ and ]).

4. 以上工作完毕后就可以开始重新编译了,要确保新的资源也被编译进去,一切就绪后将安装包拷贝到手机,下次重启时你的程序将能自动启动。


注意

  • 如果EXE程序在启动后立刻退出(大约5秒左右),将会显示一条信息,Unable to start <name of EXE>. Application may need to be removed.
  • Developer Library中有几个已知问题的解决方案,搜索“Startup List”即可搜索到
  • Startup List Management API does not work with Self-Signed application.这样的程序需要一个收信的证书(当发布时可以通过Symbian Signed来获取相关证书)
  • 在某些手机上(E61上测试过)startup list manager API只要有WriteUserData能力即可进行执行
  • 要启动的exe不能使用pkg中的内嵌sis文件进行安装

相关链接

  • 更多关于Strtup List Management API可以参考http://www.developer.nokia.com/Community/Discussion/showthread.php?138079-Auto-Startup-Application-Signing!

实例程序

Startup List Management Example

This page was last modified on 30 May 2013, at 07:41.
108 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×