×
Namespaces

Variants
Actions

强制内嵌SIS文件的版本检查

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

测试基于
设备:: Nokia 6210 Navigator, Nokia N95

兼容于
平台: S60 3rd Edition FP1, S60 3rd Edition FP2

文章
关键词: PKG file, approp(), embedded sis, version checking
翻译:
hoolee
最后由 hamishwillee 在 15 Jun 2012 编辑
  • 详细描述

当安装程序检查到手机已经装有该SIS文件的相应版本时,会弹出提示警告窗口。但是安装程序并不会检查内嵌的SIS文件版本,即时手机上已经装有该应用程序。


在PKG文件中我们可以确保安装程序只在已安装的内嵌SIS文件版本低于当前版本或之前根本没有安装时覆盖内嵌SIS文件。


  • 解决方案

在PKG文件中需要进行相关设置。可以通过AppProp()函数测试PKG的属性。获得内嵌SIS的主副版本号和编译号。

内嵌SIS的pkg文件

//Normal pkg file statements
 ; embedded sis version 3.2.5
+(0=3,1=2,2=5)

内嵌SIS版本强制检查 现在我们通过使用approp(packageid, propid)方法确保安装程序只在已安装的内嵌SIS版本低于该内嵌SIS版本时才安装。

Base pkg file

;Normal pkg file formats
 ;It embedds 3.2.5 embedded.sisx,updates any older progressbar.sisx
 ; 0xA00001F9 is the package id of the embedded.sisx
IF package(0xA00001F9) ;checks for already installed embedded sis file
if ( (appprop(0xA00001F9,0) <= 3)) ;checking the major release
if ( (appprop(0xA00001F9,1) <= 2)) ;checking the minor release
if ( (appprop(0xA00001F9,2) <= 4)) ;checking the build number
@"embedded.sisx", (0xA00001F9) ;v 3.2.5
endif
endif
endif
ELSE
@"embedded.sisx", (0xA00001F9) ;v 3.2.5
ENDIF

优化 我们可以将把版本号放入一个属性从而避免检查3个不同的属性值

;Normal pkg file statements
 ; embedded sis version 3.2.5
 ;(3*1000000+2*1000+5)
+(0=03002005,1=-1,2=-1)


Base pkg file

;It embedds 3.2.5 progressbar.sisx,updates any older progressbar.sisx
IF package(0xA00001F9)
if ( (appprop(0xA00001F9,0) < 3002005));(3*1000000+2*1000+5)
@"progressbar_armv5.sisx", (0xA00001F9) ;v 3.2.5
endif
ELSE
@"progressbar_armv5.sisx", (0xA00001F9) ;v 3.2.5
ENDIF
This page was last modified on 15 June 2012, at 05:05.
26 page views in the last 30 days.