Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 4.2.1短信SMS常用接口整理

android 4.2.1短信SMS常用接口整理

編輯:關於Android編程

      android上短信功能基本很穩定了,一般很少維護,所以感覺總是很陌生%>_<%。這裡總結下4.2.1上原生Mms用到的短信接口,以便再次基礎上記憶。android的framework對上層短信提供的接口基本都在SmsManager和SmsMessage。個人認為前者提供了發送獲取短信等功能,後者提供了計算長度解析短信等針對了短信內容的功能。
        先說說SmsManager這個類:
        sendTextMessage()根據後面的調用,可以知道這個是協議上發送一條短信的方法。協議上的一條短信是指一條短信不能超過140個字節,即70個漢字。這個方法在原生短信中沒有調用,盡在該類的另外一個方法中有用到。
        divideMessage()講一個字符串根據協議分成若干個短信段。這個方法會在SmsSingleRecipientSender.java,原生短信模塊中最終發送短信的類中用到。稍微注意下這個方法就能發現一條長短信中,從第二個分斷短信開始,可供編輯內容空間變小了。
        sendMultipartTextMessage()android原生代碼中,應用層調用的發短信方法。從這裡開始就和應用沒有關系了。
        sendDataMessage()從字面意思可以理解到其意思,但是沒有見在哪裡用過,先知道有這個方法存在。
        copyMessageToIcc()也沒有看到在哪裡用到,同樣先知道。
        deleteMessageFromIcc()這個在短信數據庫裡面有用到,刪除sim卡上短信。
        updateMessageOnSim()也很少用到。
        getAllMessagesFromIcc()還是在短信數據庫中用到。
        後面的基本都和短信功能關系不大,就不說明了。我們可以看出從這裡我們只要記住並且熟悉sendMultipartTextMessage()和divideMessage()兩個接口就行了,如果真有必要寫發送短信功能代碼,這兩個接口就足夠了。
        再說說SmsMessage。這個類可以說是根據協議來一個個實現相關方法的。注釋裡面也說明了其參考了TS 23.038協議。
        createFromPdu()根據注釋可以知道是在收到短信的情況下,講下面發上來廣播中的內容解析成短信。原生短信中用的是該方法的重載方法。
        createFromPdu()這個方法的重載方法,參數列表中多了一個短信類型。因為GSM和CDMA短信解碼方式不一樣。下層在往上層發送廣播的時候會提供當前短信類型,根據這個類型就可以知道是用GSM還是CDMA去解析短信。
        newFromCMT(),newFromParcel(),createFromEfRecord(),getTPLayerLengthForPDU()這幾個方法一般不常用,大概有個印象就行。
        calculateLength()計算當前短信按照協議打包之後的信息,包括短信需要打包成幾段,最後一段還剩多少空間等內容。在編輯短信界面顯示剩余字數就有用到。
        fragmentText()這個在SmsManager中和divideMessage用到,就不多說了。這之後的方法都是get方法,返回短信類型中的一些標記。

        最後補充一句,有些方法和作用域前面有@hide字段,表示不對外公開api,但是系統內部是可以使用的。不過使用反射貌似也能用。:)短信中常用到的接口就整理到這裡,方便自己以後記憶。希望自己能帶著這些去看看3GPP協議,:)。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved