WMA (Wireless Messaging API) adalah paket opsional yang terdapat pada J2ME, yang mengizinkan untuk mengembangkan aplikasi-aplikasi yang mampu melakukan pengiriman dan penerimaan pesan (baik yang berupa pesan teks maupun dalam bentuk gambar) melalui SMSC (Short Messaging Service Center) maupun MMSC (Multimedia Messaging Service Center).
WMA menyediakan API (Application Programming Interface) dasar untuk mengirim dan menerima pesan SMS. Dalam proses pengiriman dan penerimaan SMS, terdapat tiga buah interface yang perlu kita ketahui kegunaannya. Adapun ketiga interface tersebut adalah TextMessage, BinaryMessage, dan MessageConnection. Interface TextMessage adalah interface yang merepresentasikan pesan berupa teks, Interface tersebut menambahkan dua buah method untuk mengakses teks-teks yang bersangkutan.
String getPayloadText() // untuk mendapatkan isi dari pesan Void setPayloadText(String body) // untuk mengeset isi pesan Interface BinaryMessage adalah interface yang merepresentasikan pesan biner. Interface tersebut menambahkan dua buah method untuk mengakses pesan biner yang terdapat di dalamnya. Isi dari pesan biner adalah berupa array byte.
String getPayloadText() // untuk mendapatkan isi dari pesan Void setPayloadText(String body) // untuk mengeset isi pesan Inti dari paket WMA berada pada interface MessageConnection, yang merepresentasikan sebuah koneksi jaringan untuk melakukan proses pengiriman maupun penerimaan pesan. Kita dapat memperoleh instance dari MessageConnection dengan cara melewatkan URL tertentu ke dalam method Connector.open().
Berikut ini aturan penulisan URL yang diizinkan WMA.
1. sms://no_telepon. MessageConnection akan mengirimkan pesan ke nomor telepon tujuan. Pesan akan terkirim ke inbox SMS dari device tujuan. Dengan demikian, pesan secara otomatis akan diterima oleh aplikasi yang telah disediakan oleh device bersangkutan, bukan oleh aplikasi penerima SMS yang kita kembangkan sendiri.
2. sms://no_telepon:port. MessageConnection akan mengirimkan pesan ke nomor telepon tujuan untuk port yang ditentukan. Di sini, pesan tidak akan terkirim ke inbox SMS dari device bersangkutan melainkan akan dikirimkan ke suatu MIDlet pada device penerima yang bertugas mendengarkan port tersebut.
3. sms://:port. MessagConnection akan mendengarkan port yang ditentukan. Di sini, MIDlet SMS yang berada di client berperan sebagai server pada port tertentu. Pesan akan terkirim melalui port tersebut. Koneksi jenis ini dinamakan dengan koneksi mode server (server mode connection).
4. cbs://:port. MessageConnection akan mendengerkan pada port tertentu yang ditetapkan untuk pesan CBS (Cell Broadcast Service).