ProactiveHandlerpublic final class ProactiveHandler extends EditHandler This class is the basic class for the definition of
Proactive commands
. Low level methods, as init() , appendTLV() ...
will be used to handle generic Proactive commands (standard or future
definitions...). The ProactiveHandler class is a Temporary JCRE Entry
Point Object.
The Toolkit applets, which need to send Proactive commands,
shall call the getTheHandler() static method to get the
reference of this system instance.
Example of use:
// constants definition
private static final byte MY_COMMAND = (byte)0x33;
private static final byte MY_TAG = (byte)0x45;
ProactiveHandler proHdlr; // get the system instance
proHdlr = ProactiveHandler.getTheHandler();
// build and send a new Proactive
// command
proHdlr.init(MY_COMMAND, (byte)0, DEV_ID_ME);
proHdlr.appendTLV((byte)(MY_TAG | TAG_SET_CR),
(byte)0);
short len = proHdlr.getLength(); // length should be 14 !
byte result = proHdlr.send();
private byte[] text = new byte[12]; // byte array definition
text[0] = (byte)'S'; // text, in 8-bit format, is "SAT"
text[1] = (byte)'A';
text[2] = (byte)'T';
// build and send a DisplayText command
result = proHdlr.initDisplayText((byte)0x80, DCS_8_BIT_DATA,
text, (short)0, (short)3);
result = proHdlr.send();
|
Constructors Summary |
---|
private ProactiveHandler()Constructor
|
Methods Summary |
---|
public static sim.toolkit.ProactiveHandler | getTheHandler()Returns the single system instance of the ProactiveHandler class.
The applet shall get the reference of the handler at its triggering,
the beginning of the processToolkit method.
return null;
| public void | init(byte type, byte qualifier, byte dstDevice)Initializes the next Proactive command with Command Details and Device
Identities TLV.
The source device is always the SIM card. The command number is
generated by the method. The Comprehension Required flags are set.
After the method invocation no TLV is selected.
| public void | initDisplayText(byte qualifier, byte dcs, byte[] buffer, short offset, short length)Builds a Display Text Proactive command without sending the command.
The Comprehension
Required flags are all set to 1.
After the method invocation no TLV is selected.
Notes:
- If
offset or length
parameter is negative an
ArrayIndexOutOfBoundsException
exception is thrown and no proactive command is build.
- If
offset+length is greater than
buffer.length , the length
of the buffer array an
ArrayIndexOutOfBoundsException exception is thrown
and no proactive command is build.
| public void | initGetInkey(byte qualifier, byte dcs, byte[] buffer, short offset, short length)Builds a Get Inkey Proactive command without sending the command.
The Comprehension
Required flags are all set to 1.
After the method invocation no TLV is selected.
Notes:
- If
offset or
length parameter is negative an
ArrayIndexOutOfBoundsException
exception is thrown and no proactive command is build.
- If
offset+length is greater than
buffer.length , the length
of the buffer array an
ArrayIndexOutOfBoundsException exception
is thrown and no proactive command is build.
| public void | initGetInput(byte qualifier, byte dcs, byte[] buffer, short offset, short length, short minRespLength, short maxRespLength)Initialize the building of a Get Input Proactive command. The
Comprehension Required flags are all set to 1.
The following command parameters (i.e. TLVs) may be appended to the
command before sending it: Default Text.
After the method invocation no TLV is selected.
Notes:
- If
offset or length
parameter is negative an
ArrayIndexOutOfBoundsException
exception is thrown and no proactive command is build.
- If
offset+length is greater than
buffer.length , the length
of the buffer array an
ArrayIndexOutOfBoundsException exception is thrown
and no proactive command is build.
| public byte | send()Sends the current Proactive command.
return 0;
|
|