The Nokia Asha software platform 1.0 devices and some Series 40 devices with Java Runtime 1.0.0 for series 40 or newer support Dual-SIM functionality. Dual-SIM devices have two SIM card slots: SIM1 for the default SIM under the battery and SIM2 for the swappable SIM. You can use the dual-SIM functionality to:
Switch between multiple SIMs to take advantage of different service offers
Use multiple SIMs to ensure network coverage in areas without fully developed coverage
Switch off their employer-provided SIM while not at work
In a MIDlet, the user is prompted to select which SIM to use once per session for each type of communication request (call operation, network access, messaging). The prompt is shown at the first request to use a particular type of communication. There are typically one or two SIM selection prompts per session.
If a device has only one SIM inserted (SIM1), the device functions as a single-SIM device and SIM selection prompts are not shown.
Prompting for SIM selection depends on the Preferred SIM value chosen from Dual SIM settings on Nokia Asha and the SIM Manager on Series 40 software platform devices . Some devices may have separate Preferred SIM selections for different types of communication, for example, for SMS and MMS. Preferred SIM can have the following values:
Value |
Description |
---|---|
Ask every time |
The user is prompted every time the device is used for outgoing communication. This is the default value. |
SIM1 |
SIM1 is set as the preferred SIM. |
SIM2 |
SIM2 is set as the preferred SIM. |
Figure: Dual SIM selection
Figure: SIM selection for making a call
The Nokia Asha and Series 40 software platforms channel automatically accept any requests for communication coming from a Java MIDlet to the SIM selected by the user. The selection menu is controlled by the Operating System, and there is no additional code required by the developer.
Figure: A Java MIDlet selection to send an SMS
Dual-SIM devices support the following additional System properties:
com.nokia.multisim.cellid.sim1 and com.nokia.multisim.cellid.sim2
com.nokia.multisim.countrycode.sim1 and com.nokia.multisim.countrycode.sim2
com.nokia.multisim.lac.sim1 and com.nokia.multisim.lac.sim2
com.nokia.multisim.mmsc.sim1 and com.nokia.multisim.mmsc.sim2
com.nokia.multisim.mnc.sim1 and com.nokia.multisim.mnc.sim2
com.nokia.multisim.networkavailability.sim1 and com.nokia.multisim.networkavailability.sim2
com.nokia.multisim.networkID.sim1 and com.nokia.multisim.networkID.sim2
com.nokia.multisim.networksignal.sim1 and com.nokia.multisim.networksignal.sim2
com.nokia.multisim.networkstatus.sim1 and com.nokia.multisim.networkstatus.sim2
com.nokia.multisim.smsc.sim1 and com.nokia.multisim.smsc.sim2
The following table describes the behavior of certain pre-existing single-SIM system properties when they are used in a MIDlet run on a dual-SIM device.
System property |
Return value (depending on listed factors) |
||||
---|---|---|---|---|---|
Number of SIMs inserted |
1 (SIM1) |
2 |
2 |
2 |
2 |
Preferred SIM |
N/A |
"Ask every time" for all |
SIM2 for SMS, "Ask every time" for others |
SIM2 for all |
"Ask every time" for all |
MIDlet has already established a connection, which triggered a SIM selection prompt |
N/A |
No |
No |
No |
Yes, SIM1 was selected |
com.nokia.mid.cellid |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.countrycode |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.imsi |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.lac |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.msisdn |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.networkid |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.ons |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
com.nokia.mid.spn |
Value from SIM1 |
null |
null |
Value from SIM2 |
Value from SIM1 |
wireless.messaging.sms.smsc |
Value from SIM1 |
null |
Value from SIM2 |
Value from SIM2 |
Value from SIM1 |