In both
Series 40 and Symbian (JRT 2.1 onwards), MIDlets can be launched with platformRequest
using the localapp:
scheme. For example:
platformRequest("localapp://jam/launch?midlet-name=ArcadeGames;midlet-vendor=Acme;sounds=OFF;difficulty=easy;wizard_mode=ON");
The MIDlet to be launched is identified by the combination of
the MIDlet suite name (midlet-name
), vendor (midlet-vendor
). In case the suite has multiple MIDlets,
the MIDlet needs to be identified with MIDlet number (midlet-n
).
The midlet-name
, midlet-vendor
and midlet-n
attribute values are case sensitive.
They must match their corresponding attribute values of MIDlet-Name
, MIDlet-Vendor
and <n>
in MIDlet-<n>
.
In
Symbian, the application declares the parameters it supports using
the Nokia-MIDlet-Launch-Params
JAD/JAR manifest
attribute . The application can access the parameters through
system properties. Parameters not listed in Nokia-MIDlet-Launch-Params
are not passed to the application. For example, the MIDlet Acme/ArcadeGames
needs to define the following attribute
(Symbian only):
Nokia-MIDlet-Launch-Params: sounds,difficulty,wizard_mode
The ArcadeGames MIDlet can access the parameters as follows:
System.getProperty("sounds"); System.getProperty("difficulty"); System.getProperty("wizard_mode");
In Symbian (JRT 2.1 onwards), also the javaapp:
scheme can be used for launching MIDlets.
platformRequest("javaapp:midlet-name=ArcadeGames;midlet-vendor=Acme;sounds=OFF;difficulty=easy;wizard_mode=ON");
In Symbian, when a MIDlet starts, it can acquire the
full command line from system property com.nokia.mid.cmdline
.
In Symbian , a MIDlet can also be launched using the MIDlet's UID. The MIDlet UID can be in hexadecimal or decimal format. For example:
platformRequest("javaapp:midlet-uid=0xE1000000;sounds=OFF;difficulty=easy;wizard_mode=ON);
A Manufacturer/Operator
signed MIDlet can use the platformRequest
method
(which is specified in MIDP2 specification) to invoke other MIDlets
installed on the phone via the localapp
URI
scheme.
However, in the present Series 40 implementation after a successful launch and exit of the target MIDlet, the user cannot be returned to the MIDlet that initiated this invocation.
This
limitation can now be overcome by specifying an additional parameter
in the platformRequest
URI.
For example localapp://jam/launch?midlet-name=NokGolf;midlet-vendor=Nokia;midlet-version=1.2;chaining=true
This behavior is called 'MIDlet chaining' where MIDlet A invokes MIDlet B, and the user is taken back to MIDlet A after the exit of MIDlet B.
Dependencies and platform restrictions:
By default 'MIDlet chaining' is disabled. Not specifying this
parameter in the URI is equivalent to chaining=false
.
In order to use the feature, the device needs to support JSR 211 Content Handler API.
This feature is restricted to MIDlets belonging to Manufacturer and Operator
domain.
In case of a MIDlet suite with multiple MIDlets, this method
will always invoke the MIDlet specified by the MIDlet-1 attribute in the JAD file; that is, the first MIDlet
in the suite.
In Symbian the parameter is ignored. As multitasking is supported, 'MIDlet chaining' is in a sense always enabled.
An example snippet of code specifying the method use follows:
public class xyzMIDlet extends MIDlet{ //..................... //...................... String url = "localapp://jam/launch?midlet-name=NokGolf;midlet-vendor=Nokia;chaining=true"; if (platformRequest(url)){ System.out.println("midlet exit required"); notifyDestroyed(); } else { System.out.println("midlet exit NOT required"); } //..................... //...................... } // end of MIDlet class