2.關於短信,有兩種情況,壹種是接收,壹種是發送。我們先來看看發送。代碼如下:
public void sendImp() {
string addr = " SMS://"+phone . getstring()+":"+port . getstring();
消息連接連接器;
string cont = content . getstring();
嘗試{
conn =(message connection)connector . open(addr);
text message msg =(text message)conn . new message(message connection。TEXT _ MESSAGE);
msg.setPayloadText(續);
conn . send(msg);
conn . close();
} catch (IOException e) {
// TODO自動生成的catch塊
e . printstacktrace();
}
}
以上代碼的關鍵是獲取發送地址,發送地址由三部分組成,短信://,電話號碼,本地短信端口號。通常這個端口號是通過getapp property(“SMS-Port”)獲得的。其余沒什麽特別的。
再看接待:
public void receiveImp() {
消息msg
字符串senderAddr
嘗試{
msg = conn . receive();
如果(msg!= null) {
sender addr = msg . get address();
sender = senderAddr
if(文本消息的消息實例){
content = ((TextMessage)msg)。getPayloadText();
}
否則{
string buffer buf = new string buffer();
byte[] data = ((BinaryMessage)msg)。getPayloadData();
for(int I = 0;我& lt數據長度;i++) {
int int data =(int)data[I]& amp;0xFF
if(int data & lt;0x10) {
buf . append(" 0 ");
}
buf . append(integer . tohexstring(int data));
buf . append(“”);
}
content = buf . tostring();
System.out.println(內容);
}
}
} catch(InterruptedIOException e){
// TODO自動生成的catch塊
e . printstacktrace();
} catch (IOException e) {
// TODO自動生成的catch塊
e . printstacktrace();
}
}
在j2me中,有壹個名為MessageListener的接口,它包含壹個方法通知消息(MessageConnection Conn)。壹旦註冊它的消息連接收到消息,這個方法將被自動調用和執行。因此,我們應該首先創建壹個新的MessageConnection,地址為sms://port。這個地址與發送消息相同,只是缺少電話號碼,然後使用這個連接註冊MessageListener接口。然後在notifyIncomingMessage中寫下以上接收方式,就可以正常接收信息了。