转载自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的定义如下: 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'; //同样可以使用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 |