将symbian pkg进行到底
2010-05-10 17:30:00 来源:WEB开发网[0x20000600], 0, 0, 0, {"Nokia N93 ID"}
[0x20000605], 0, 0, 0, {"Nokia N93i ID"}
[0x2000060B], 0, 0, 0, {"Nokia N95 ID"}
手机型号的标识可以参考S60 Platform and device identification codes.
安装特定手机所需文件
可能我们的部分安装文件需要依赖用户手机而定,例如一个游戏开发者可能需要生成一个指定的DLL,以便支持3D加速。那么对没有3D加速的手机,
就只能安装标准的DLL,示例代码如下:
IF (MachineUID=0x20000600) OR (MachineUID=0x2000060B)
; If the device is Nokia N93 or N95, then install files in this block.
"epoc32eleasearmv5urelmydll_3d" -"!:sysinmydll.dll"
ELSE
; Otherwise install any files in this block.
"epoc32eleasearmv5urelmydll" -"!:sysinmydll.dll"
ENDIF
手机标识代码可以在这里找到S60 Platform and device identification codes.
安装指定平台的文件
可能我们部分安装文件依赖于手机的操作系统,例如第三版FP2就去掉了一些蓝牙连接库,这样的不同导致我们在安装时也需要区别对待,手机平台可以在 z:systeminstall文件夹中获取:
if exists("z:systeminstallSeries60v3.2.sis")
"Epoc32eleasegcceURELCommon_0x123123123_fp2.dll"-"C:sysincommon_0x123123123.dll"
else
"Epoc32eleasegcceURELCommon_0x123123123.dll"-"C:sysincommon_0x123123123.dll"
endif
安装条件
下列函数也可以使用在pkg中:
package()用来测试一个安装包是否存在;
exists()用来测试给定文件是否存在
appprop()获得注册表中的相关属性
DevProp()函数用来询问手机能力值,注意不是直接提供的名字属性
package():如果指定UID已经安装将返回true,否则返回false,下列代码表示如果UID为0x11223344那么将安装foo.txt文件
IF package(0x11223344)
"foo.txt"-"c:foo.txt"
ENDIF
exists(): 如果test.txt存在则返回true,将安装新的
if exists("c: est.txt")
"textexists.txt"-"!:privatex01234567exists.txt"
更多精彩
赞助商链接