Messaging in the mobile world can take several forms: SMS (text), Picture Messaging (text and graphics), smart messaging (short messages holding content such as ringtones and notifications), and MMS (digital image input) can be sent with the mobile device. Note that not all these are available in all devices.
The Wireless Messaging API (JSR-205) specification allows you to compose, send, and receive SMS, MMS, and CBS messages through Java™ applications (MIDlets).
The Wireless Messaging API (WM API) is based on the Generic Connection Framework (GCF). The GCF
is defined in the javax.microedition.io
package
of the Connected Limited Device Configuration (CLDC) 1.0 specification.
The package defines an extensible framework for connections and supports
input/output and networking functionality in Java Platform Micro Edition
profiles.
Representation of a message
A message can be thought of as having an address part and a data
part. A message is represented by a class that implements the interface
defined for messages in the WM API 2.0. This interface provides methods
that are common for all messages. In the javax.wireless.messaging
package, the base interface that is implemented by all messages
is named Message
. It provides methods for addresses
and timestamps.
For the data part of the message, the WM API 2.0 is designed to
handle text, binary and multipart messages. These are represented
by three subinterfaces of Message
: TextMessage
, BinaryMessage
and MultipartMessage
. These subinterfaces provide ways to
manipulate the payload of the message as Strings
, byte arrays and message parts, respectively.
Other subinterfaces of Message
can be defined
for message payloads which are neither pure text nor pure binary.
It is also possible to create further subinterfaces of TextMessage
, BinaryMessage
and MultipartMessage
for possible protocol-specific features.
Sending and receiving messages
As defined by the Generic Connection Framework, the message sending
and receiving functionality is implemented by a Connection
interface, in WM API 2.0's case, MessageConnection
. To make a connection, the application obtains an object implementing
the MessageConnection
from the Connector
class by providing a URL connection string that identifies the address.
For more information about the sending and receiving of messages, see the Wireless Messaging API (JSR-205) specification.
Permissions for Series 40 and Symbian MIDP 2.0 Platforms
When the WM API 2.0 interfaces are deployed on a Series 40 and Symbian MIDP 2.0 device, permissions must be granted to open a connection and to send and receive messages. Separate permissions are provided for the SMS and CBS protocols.
To open a connection, a MIDlet suite must have the appropriate
permission to access the MessageConnection
implementation.
If the permission is not granted, then Connector.open
must throw a SecurityException
. To send and
receive messages, the MIDlet suite can restrict certain types of messages
or connection addresses. If the application attempts to send or receive
either a restricted type of message or a message with a restricted
connection address, then a SecurityException
must
be thrown.
For more information about the permissions in WM API 2.0, see Appendix E of Wireless Messaging API (JSR-205) specification.
For more information about messaging on mobile devices, see:
Wireless Messaging API 2.0 for instructions on how to use the Wireless Messaging API 2.0 and create an MMS example MIDlet