WMA (Wireless Messaging API) 是在MIDP2.0里边定义的无线消息API, 它们主要是用来接收和发送基于文本、二进制和MultiPart格式的消息。
6 @3 y# e7 |5 b6 w. _$ n4 E /* 建立一个连接*/
; w% g2 a& Q# e8 S public boolean connectSMSServer() {7 }- z" m2 R; A( T8 Q& S
try {
5 N, c2 }" H+ d. t' H; F7 a: j3 v messageConnection messageConnection =4 o2 Z/ q9 U$ }6 ~
(MessageConnection) Connector.open("sms://:" + port);; g* u% v; m8 g% l! x) t& B
messageConnection.setMessageListener(this);8 ~- M8 J/ h7 T
} catch (Exception e) {
0 }- j% H8 j# N }
! G& z4 E+ R. L }
( F" z0 j, y f( I /* 发送文本短消息 */
6 z' ^& {- ]6 ]+ G public void sendTextmessage(String address, String message) {: J6 l- n* C+ J6 v8 w. ]& @
try {
; S0 C* q1 |5 I& H //生成一个新的短消息
# u2 n# d' X0 l& ^ TextMessage textMessage = (TextMessage) messageConnection.newMessage(
- {- V! z& f o9 y( { MessageConnection.TEXT_MESSAGE, address);; u. R* K$ ~1 O$ L( h
textMessage.setPayloadText(message);
/ O- v2 U0 y I+ a# X messageConnection.send(textMessage);
9 \5 m& } z5 P, {* ^9 S1 G } catch (Exception e) {3 g+ G9 ~1 q% f/ ~! A1 e7 p5 R
}+ b0 q# @- [' p
}
& c1 j; F0 M& s7 A3 _ /* 接受文本短消息 */2 O; N( P9 H: j4 |/ c0 \( O% b3 A, u
public void receiveTextMessage() {+ z8 N' ?% b( Q$ c
try {& b {" }9 r6 u8 M' e. h
Message message = messageConnection.receive();7 d0 h5 z( B+ {- X
if (message instanceof TextMessage) {
: J1 m+ ~$ J6 x A+ K TextMessage textMessage = (TextMessage) message;
0 N8 c7 s* V/ {. W* z8 i } else {
$ i! C2 Y6 O+ o6 y //Message can be binary or multipart
0 u1 k* V! i% P5 {2 @3 l }
* p8 X: G: F9 j0 s$ Q! C. I+ Y } catch (Exception e) {
% m7 |5 F. e6 d3 v }
. P$ D0 t+ j8 s) c }# B% k: k& S. _ O
/* 收到消息通知 */
# T2 ?! @& D4 F# x1 }( W8 r5 R public synchronized void notifyIncomingMessage(MessageConnection conn) {
0 y, [! ]# H# z& g" C //notiy thread of incoming message ^4 s, t) |) h
synchronized (this) {" D8 Q4 T: x9 u, m2 n' l
notify();& W: u" k3 p( e$ g8 r5 F
}$ E5 p' H8 A( Z* ^1 u4 |: E
}. ^/ ^5 t; d) M
/* 关闭连接*/- o; ~" h& ]( E2 y2 _0 J
public void closeConnection() {
9 y8 U1 d# Z+ p T3 ^ if (messageConnection != null) {, J8 z1 F! F9 s7 s
try {* D5 J) l& G$ u! J! U- o6 b8 m6 k
messageConnection.setMessageListener(null);1 D2 Z4 I2 w; [2 D! ?5 V8 ^% ~* u
messageConnection.close();8 u$ d$ b, _1 [! \! V0 V+ E
} catch (Exception e) {4 m5 a w+ f! n' b; c3 T+ J) C
}
2 U7 B. H2 _' Y; R8 T, G( L }3 A6 i. L6 s/ r# v
} |