注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Simon

 
 
 

日志

 
 

Symbian如何使用静默安装 SilentInstall  

2010-11-23 11:20:56|  分类: Symbian C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、头文件和库:

1. incl?: #incl? <SWInstApi.h>

         #incl? <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

是否可下载

TB

iLogin

下载用户名,最大长度KSWInstMaxUserNameLength

TB

iPassword

下载密码,最大长度KSWInstMaxPasswordLength

TChar 

iDrive

安装的目标驱动器

TLang ge 

iLang

选择的语言

TBool 

iUsePhoneLang

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

TPolicy 

iUpgradeData

是否更新所有数据

 

其中TPolicy的定义如下:

enum TPolicy

{

EPolicyAllowed,

EPolicyNotAllowed,

EPolicyUserConfirm

}

 

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

TB8<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

 

四、代码示例

   //constr t

   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';  

   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");

TB<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

  评论这张
 
阅读(806)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018