亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2508 | 回復(fù): 0
打印 上一主題 下一主題

API JSR-205 JSR-102 整理 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-07-29 14:26 |只看該作者 |倒序瀏覽
開發(fā)手機(jī)程序,最能想到的就是對SMS(Short Messaging Service), MMS(Multimedia Messaging Service),Email的支持。
對于SMS, MMS,sun官方已經(jīng)出了個jsr-205,jsr-102規(guī)范對其進(jìn)行了完善的支持。
一。前言

學(xué)習(xí) Java™ Micro Edition(Java ME)無線消息 API。這個專欄將從幾個簡單的代碼示例開始,隨后討論它為企業(yè)開發(fā)人員帶來的各種機(jī)會。
移動電話最常見的一個特性就是消息傳遞。文本消息或短消息(SMS)自引入之初,已經(jīng)變得越來越流行。當(dāng)然,多媒體消息(MMS)又為其增加了圖片、聲音和視頻等多媒體內(nèi)容。

在 MMS 剛出現(xiàn)時,有些專家預(yù)言它會取代 SMS,如果它的價格不是這么高的話,這個預(yù)言確實有可能會成為現(xiàn)實。即便如此,這種能在手機(jī)之間傳遞多媒體內(nèi)容的功能還是漸受青睞。最近手機(jī)電子郵件的 成功,意味著未來手機(jī)消息傳遞的主要形式可能是電子郵件,但是要到那一步還有很長的一段路要走。

二。無線消息
JSR-205 中定義的無線消息 API(WMA)2.0 是用于無線消息的一組可選 API。WMA 的連接基于通用連接框架,該框架是在基于 CLDC 的 Java ME 架構(gòu)中進(jìn)行通信的基礎(chǔ)。WMA 2.0 向后兼容 WMA 1.1,添加了對發(fā)送和接收多媒體消息的支持。換句話說,無線消息 API 提供了無線通信的高級抽象。它將傳輸層完全隱藏,因而所要做的工作只是創(chuàng)建消息、發(fā)送消息和接收消息。
WMA 支持文本消息、小區(qū)廣播和多媒體消息。文本消息很簡單,大多數(shù)人都知道它是什么。SMS 消息極為流行,而且已經(jīng)成為日常生活的一部分。WMA 支持發(fā)送和接收文本消息。發(fā)送非常簡單:只需定義目標(biāo)地址和文本,文本被稱為凈荷(payload)。接收稍微復(fù)雜些,因為需要應(yīng)用程序能夠偵聽進(jìn)入的消息。在下面的示例中將看到如何讀取進(jìn)入的消息。


消息內(nèi)容

二進(jìn)制消息顧名思義就是帶有二進(jìn)制內(nèi)容的消息。內(nèi)容可以是要傳遞給應(yīng)用程序或者從應(yīng)用程序傳遞給其他客戶機(jī)或服務(wù)器的任何內(nèi)容。多部分消息可以包含多塊媒體,例如文本、音頻和視頻。

小區(qū)廣播可能是最不為人所知的消息類型。小區(qū)廣播服務(wù)是一種數(shù)據(jù)服務(wù),在這種服務(wù)中,消息由基站廣播,由偵聽這個基站的每個移動站接收。這個服務(wù)是單向的,這意味著 WMA 只能用來接收這類消息。

發(fā)送和接收

發(fā)送文本消息很簡單。步驟如下:

設(shè)置手機(jī)號碼(地址)。
用 Connector 接口創(chuàng)建 MessageConnection。
創(chuàng)建新消息,并把它的類型轉(zhuǎn)換成 TextMessage。
設(shè)置凈荷。
通過調(diào)用 send() 方法并向方法傳遞 Message 實例,發(fā)送消息。
發(fā)送的消息中包含的發(fā)送人信息,與正常發(fā)送消息時的相同。顯示了使用 Java ME WMA 發(fā)送消息的代碼。


java 代碼

try {   
  String addr = ?ms://+358401234567?   
  MessageConnection conn = (MessageConnection) Connector.open(addr);   
  TextMessage msg =   
   (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);   
  msg.setPayloadText(?his is a test message!?;   
  conn.send(msg);   
} catch (Exception e) {   
...   
}   


接收文本消息略微復(fù)雜,但也不是太復(fù)雜。在一個端口上打開 MessageConnection (在這個示例中是 5432)并從 MessageConnection 讀取進(jìn)入的消息?梢杂 instanceof 測試消息的類型。要接收有消息進(jìn)入的通知,應(yīng)用程序必須實現(xiàn) MessageListener 接口,所以要編寫比  更復(fù)雜一些的代碼,才能讓它真正工作。
java 代碼

try {   
  String addr = ?ms://:5432?   
  MessageConnection conn = (MessageConnection) Connector.open(addr);   
  Message msg = null;   
  while (someExitCondition) {   
    msg = conn.receive();   
    if (msg instanceof TextMessage) {   
           TextMessage tmsg = (TextMessage)msg;   
           String receivedText = tmsg.getPayloadText();   
           // respond with the same text with ?hanks.?   
     tmsg.setPayloadText(?hanks?;   
     conn.send(tmsg);   
    } else {   
       // Received message was not a text message, but e.g. binary   
       ...   
    }   
  } // end while   
  } catch (Exception e) {   
   ...   
}   

發(fā)送二進(jìn)制消息與發(fā)送文本消息很相似。首先需要把數(shù)據(jù)放在字節(jié)數(shù)組中,然后創(chuàng)建 MessageConnection(如 清單 3 BINARY_MESSAGE。
java 代碼
try {   
  String str = "Hello!";   
  byte[] msg = str.getBytes();   
  String addr = "sms://+358401234567";   
  MessageConnection conn = (MessageConnection) Connector.open(addr);   
      
  BinaryMessage bm = (BinaryMessage)mc.newMessage   
                     (MessageConnection.BINARY_MESSAGE);   
  if (url!= null)   
    bm.setAddress(url);   
    bm.setPayloadData(msg);   
    conn.send(bm);   
    }   
  catch(Exception e) {   
}   


三類消息傳遞

WMA 消息的傳遞可以分成:服務(wù)器到手機(jī)、手機(jī)到服務(wù)器和手機(jī)到手機(jī)。

在服務(wù)器到手機(jī) 消息傳遞中,CRM 應(yīng)用程序可以向手機(jī)應(yīng)用程序發(fā)送數(shù)據(jù),手機(jī)應(yīng)用程序可以接收數(shù)據(jù)并用對用戶友好的方式呈現(xiàn)數(shù)據(jù)。在手機(jī)到服務(wù)器 的消息傳遞中,手機(jī)應(yīng)用程序可以向服務(wù)器發(fā)送數(shù)據(jù)(HTTP 連接也可以做這項工作,但 HTTP 連接不可能總是存在)。在手機(jī)到手機(jī) 的消息傳遞中,用戶可以向好友的手機(jī)發(fā)送應(yīng)用程序數(shù)據(jù)或游戲數(shù)據(jù),進(jìn)行游戲項目交換及其他操作。

上面大部分文字摘自 www.ibm.com/developerworks/cn/java/wi-arch32.html   

整理成一個工具類

java 代碼

public final static void sendTextMessage(String phone, String text)   
    throws IOException {   
        checkPhoneNumber(phone);   
        MessageConnection conn = (MessageConnection) Connector.open("sms://"   
                + phone);   
        TextMessage msg = (TextMessage) conn   
                .newMessage(MessageConnection.TEXT_MESSAGE);   
        msg.setPayloadText(text);   
        conn.send(msg);   
    }   
        
    public final static void sendTextBinary(String phone, byte[] text)   
    throws IOException {   
        checkPhoneNumber(phone);   
        MessageConnection conn = (MessageConnection) Connector.open("sms://"   
                + phone);   
        BinaryMessage bm = (BinaryMessage) conn   
                .newMessage(MessageConnection.BINARY_MESSAGE);   
   
        bm.setAddress(phone);   
        bm.setPayloadData(text);   
        conn.send(bm);   
   
    }   
      
    private final static void checkPhoneNumber (String phone)   
    throws PhoneNumberException{   
        if(phone == null   
                || phone.equals("")){   
            throw new PhoneNumberException("手機(jī)號碼不能為空!");   
        }   
        try{   
            Integer.parseInt(phone);   
        }catch(NumberFormatException n){   
            throw new PhoneNumberException("手機(jī)號碼必須為數(shù)據(jù)!");   
        }   
    }
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP