WAM

import javax.microedition.midlet.*; import javax.microedition.io.*; import javax.microedition.lcdui.*; import javax.wireless.messaging.*; import java.io.IOException; public class MyCBSReceiveMidlet extends MIDlet implements CommandListener, Runnable, MessageListener { Command exitCommand = new Command("退出", Command.EXIT, 2); Alert waiting; Display display; Thread thread; String[] connections; boolean done; String cbsMessageID; MessageConnection cbsconn; Message msg; Alert receivedMessage; public MyCBSReceiveMidlet() { cbsMessageID = getAppProperty("CBS-Message-Identifier"); display = Display.getDisplay(this); waiting = new Alert("小区广播消息接收演示", null, null, AlertType.INFO); waiting.addCommand(exitCommand); waiting.setCommandListener(this); waiting.setTimeout(Alert.FOREVER); receivedMessage = new Alert("接收到的小区广播消息", null, null, AlertType.INFO); receivedMessage.setTimeout(Alert.FOREVER); receivedMessage.addCommand(exitCommand); receivedMessage.setCommandListener(this); } public void startApp() { /** CBS connection to be read. */ String cbsConnection = "cbs://:" + cbsMessageID; /** Open the message connection. */ if (cbsconn == null) { try { cbsconn = (MessageConnection) Connector.open(cbsConnection); cbsconn.setMessageListener(this); } catch (IOException ioe) { ioe.printStackTrace(); } } display.setCurrent(waiting); /** Initialize the text if we were started manually. */ connections = PushRegistry.listConnections(true); if (connections == null || connections.length == 0) { waiting.setString("等待来自 " + cbsMessageID + "的广播消息..."); } else { done = false; thread = new Thread(this); thread.start(); } } public void notifyIncomingMessage(MessageConnection conn) { if (thread == null) { done = false; thread = new Thread(this); thread.start(); } } public void run() { try { while (!done) { msg = cbsconn.receive(); if (msg != null) { if (msg instanceof TextMessage) { receivedMessage.setString( ((TextMessage)msg).getPayloadText()); } else { StringBuffer buf = new StringBuffer(); byte[] data = ((BinaryMessage)msg).getPayloadData(); for (int i = 0; i < data.length; i++) { buf.append(Integer.toHexString((int) data[i])); buf.append(' '); } receivedMessage.setString(buf.toString()); } display.setCurrent(receivedMessage); } } cbsconn.close(); } catch (IOException e) { // e.printStackTrace(); } } public void pauseApp() { done = true; thread = null; } public void destroyApp(boolean unconditional) { done = true; thread = null; if (cbsconn != null) { try { cbsconn.close(); } catch (IOException e) { // Ignore any errors on shutdown } } } public void commandAction(Command c, Displayable s) { try { if (c == exitCommand || c == Alert.DISMISS_COMMAND) { destroyApp(false); notifyDestroyed(); } } catch (Exception ex) { ex.printStackTrace(); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值