Symbian如何使用静默安装 SilentInstall 【转】

来源:互联网 发布:js书籍推荐 编辑:程序博客网 时间:2024/05/01 22:16

 

转载自http://blog.sina.com.cn/s/blog_54f3c8700100fhz9.html

一、头文件和库:

1. include: #include <SWInstApi.h>

#include <SWInstDefs.h>

2. lib: SWInstCli.lib

3.SDK-plugin: 需要从网上下载SDK的扩展包

http://www.forum.nokia.com/info/sw.nokia.com/id/53439e01-f605-4491-96f4- 62d003bd4c0c/S60_3rd_SDK_MR_API_Plug-In_Pack1.zip.html

 

二、需要用到的能力

Capability requirements: TrustedUI

 

三、SwiUI命名空间中的类

静默安装和卸载所有的类都在SwiUI命名空间下。

1. SwiUI::RSWInstLauncher 静默安装与卸载文件的基类

主要成员函数有:

Connect()和Close(),用于连接和关闭服务器资源。

Install()和Uninstall(),用于安装和卸载文件,有多个重载函数。

SilentInstall()和SilentUninstall(),用于静默安装和卸载文件,也有多个重载函数。

 

2. SwiUI::RSWInstSilentLauncher 静默安装与卸载文件的类

派生自RSWInstLauncher,重写了一个Connect()函数。

3. SwiUI::TInstallOptions 安装的选项配置类

变量类型

成员变量名

含义

TPolicy

iUpgrade

是否可升级

TPolicy

iOptionalItems

可选配置项

TPolicy

iOCSP

是否检查网络的签名认证状态

TPolicy

iIgnoreOCSPWarnings

发生OCSP警告时是否继续安装

TPolicy

iUntrusted

是否安装未签名的程序

TPolicy

iPackageInfo

是否省略包的信息

TPolicy

iCapabilities

是否自动给用户能力

TPolicy

iKillApp

安装完成后是否删除源安装程序

TPolicy

iOverwrite

是否允许覆盖原文件

TPolicy

iDownload

是否可下载

TBuf

iLogin

下载用户名,最大长度KSWInstMaxUserNameLength

TBuf

iPassword

下载密码,最大长度KSWInstMaxPasswordLength

TChar

iDrive

安装的目标驱动器

TLanguage

iLang

选择的语言

TBool

iUsePhoneLang

强制使用手机上的默认语言

TPolicy

iUpgradeData

是否更新所有数据

 

其中TPolicy的定义如下:

enum TPolicy

{

EPolicyAllowed,

EPolicyNotAllowed,

EPolicyUserConfirm

4. SwiUI:: TInstallReq 安装的参数配置类

TBuf8<KMaxDataTypeLength> iMIME; // Mime type

TUint iCharsetId; // Id of char set

TFileName iSourceURL; // Source URL / source dir

TUint iIAP; // Access point

 

其中Mime type定义如下:

SwiUI::_LIT8 (KSisxMimeType,"x-epoc/x-sisx-app")

SwiUI::_LIT8 (KSisMimeType,"application/vnd.symbian.install")

SwiUI::_LIT8 (KPipMimeType,"application/x-pip")

SwiUI::_LIT8 (KJadMIMEType,"text/vnd.sun.j2me.app-descriptor")

SwiUI::_LIT8 (KJarMIMEType,"application/java-archive")

SwiUI::_LIT8 (KJavaMIMEType,"application/java")

SwiUI::_LIT8 (KJarxMIMEType,"application/x-java-archive")

 

5. SwiUI::TOpUninstallIndexParam 卸载的参数配置类

TUid iUid

TInt iIndex

 

6. SwiUI::TUninstallOptions 卸载的选项配置类

TPolicy iKillApp

TPolicy iBreakDependency

 

四、代码示例

//construct

SwiUI::RSWInstSilentLauncher iLauncher;

SwiUI::TInstallOptions iOptions;

SwiUI::TInstallOptionsPckg iOptionsPckg;

 

// Connect to software installer server

User::LeaveIfError(iLauncher.Connect());

 

//options setting

iOptions.iUpgrade = SwiUI::EPolicyNotAllowed;

iOptions.iOCSP = SwiUI::EPolicyAllowed;

iOptions.iDrive = 'C'; //同样可以使用67 69表示C E

iOptionsPckg = iOptions;

 

//start to intall

iLauncher.SilentInstall( iStatus, KPathAndFileNameOfJarFile, iOptionsPckg );

SetActive();

 

五、参考资源: http://wiki.forum.nokia.com/index.php/File:SilentInst.zip

 

六 其他相关内容

_LIT(KMyAppName, "z://system//Apps//AppInst//Appinst.app");

TBuf<15> filePath;

filePath.Append(_L("E://MyJar.jar"));

RApaLsSession sess;

sess.Connect();

CApaCommandLine * cmd=CApaCommandLine::NewL();

cmd->SetLibraryNameL(KMyAppName);

cmd->SetDocumentNameL(filePath);

cmd->SetCommandL(EApaCommandRun);

sess.StartApp(*cmd);

sess.Close();

 

Pkg file format.

"../../../../Epoc32/release/thumb/urel/jarInstall.exe"-"e:/system/apps/myapp/jarInstall.exe",FILERUN,RUNINSTALL

 

Jar&Jad MIDLet:

http://www3.symbian.com/faq.nsf/0/2E2F00D52D2BF0D480256FAF003F920C?OpenDocument

原创粉丝点击