一、头文件和库:
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
{
}
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 卸载的选项配置类
四、代码示例
//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';
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