SW Installer Launcher API
Article Metadata
Code Example
Article
API Purpose
RSWInstLauncher is the client side handle to access SW Installer UI services.. It handles the installation of SISX packages, and Java MIDlets. During normal installation, various notes are displayed to the user. Through these notes, the user can control the process: continue the installation or cancel it, browse the detail information of the application etc. RSWInstSilentLauncher can be used to silently install the SISX without user intervention. We can control by giving options as parameter to RSWInstSilentLauncher SilentInstall.
Use cases
One of the use case can be to download SISX from a server and then to silently install it. It has been checked in 5500.
Example code
Headers:
#include <SWInstApi.h>
#include <SWInstDefs.h>
SwiUI::RSWInstSilentLauncher iLauncher;
SwiUI::TInstallOptions iOptions;
SwiUI::TInstallOptionsPckg iOptionsPckg;
iOptions.iUpgrade = SwiUI::EPolicyNotAllowed;
iOptions.iOCSP = SwiUI::EPolicyNotAllowed;
iOptions.iDrive = 'C';
iOptions.iUntrusted = SwiUI::EPolicyNotAllowed;
iOptions.iCapabilities = SwiUI::EPolicyNotAllowed;
iOptionsPckg = iOptions;
iLauncher.Connect();
TBufC<50> FName(KTempPath);
iLauncher.SilentInstall(waiter->iStatus,FName,iOptionsPckg);
iLauncher.Close();
Error handling
The API uses Symbian OS's leave mechanism and in certain conditions the client application may panic with category SWInstSvr
Example project
Example application to install Silently: File:SilentInst.zip


28 Sep
2009
SW Installer Launcher API is useful to access SW Installer UI services in Symbian. RSWInstLauncher is very useful to install/uninstall application silently, that is sometime needed for one or more reason. This article demonstrates the use of RSWInstLauncher API to install application silently. Note that this API, SW Installer Launcher API, is not part of the public SDK. So you have to download it from SDK API Plug-in before using it. Also do not forgot to add TrustedUI capability before using this API.
The example app doesn't work out of the box.
It attempts to install a package from http://203.200.219.70:8080/content_test/SilTest.SISx but it doesn't exist.
You must modify SilentInstEngine.cpp to use your own OTA server and you must sign your own SIS file and host it there.
Might as well just bypass the http stuff and have the sisx you're installing be embedded in your pkg file.
NOTE: If you try to install new version of the application itself, the installer will kill the application that has called it and after that the installer will freeze.