歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android SmsMessage類詳解

Android SmsMessage類詳解

日期:2017/3/1 10:45:05   编辑:Linux編程

public static int[] calculateLength(CharSequence msgBody, boolean use7bitOnly)
參數:
msgBody-要封裝的消息、use7bitOnly-如果為TRUE,不是廣播特定7-比特編碼的部分字符被認為是單個空字符;如果為FALSE,且msgBody包含非7-比特可編碼字符,長度計算使用16-比特編碼。
返回值:
返回一個4個元素的int數組,int[0]表示要求使用的SMS數量、int[1]表示編碼單元已使用的數量、int[2]表示剩余到下個消息的編碼單元數量、int[3]表示編碼單元大小的指示器。
public static int[] calculateLength (String messageBody, boolean use7bitOnly)
參數和返回值跟上面類似
public static SmsMessage createFromPdu (byte[] pdu)
從原始的PDU(protocol description units)創建一個SmsMessage。這個方法很重要,在我們編寫短信接收程序要用到,它從我們接收到的廣播意圖中獲取的字節創建SmsMessage。
public String getDisplayMessageBody()
返回短信消息的主體,或者Email消息主體(如果這個消息來自一個Email網關)。如果消息主體不可用,返回null。這個方法也很重要,在我們編寫短信接收程序也要用到。
public String getDisplayOriginatingAddress ()
返回信息來源地址,或Email地址(如果消息來自Email網關)。如果消息主體不可用,返回null。這個方法在來電顯示,短信接收程序中經常用到。
public String getEmailBody ()
如果isEmail為TRUE,即是郵件,返回通過網關發送Email的地址,否則返回null。
public int getIndexOnIcc ()
返回消息記錄在ICC上的索引(從1開始的)
public String getMessageBody ()
以一個String返回消息的主體,如果它存在且是基於文本的。
public SmsMessage.MessageClass getMessageClass ()
返回消息的類。
public String getOriginatingAddress ()
以String返回SMS信息的來電地址,或不可用時為null。
public byte[] getPdu ()
返回消息的原始PDU數據。
public int getProtocolIdentifier ()
獲取協議標識符。
public String getPseudoSubject ()
public String getServiceCenterAddress ()
返回轉播消息SMS服務中心的地址,如果沒有的話為null。
public int getStatus ()
GSM:為一個SMS-STATUS-REPORT消息,它返回狀態報告的status字段。這個字段表示之前提交的SMS消息的狀態。
CDMA:為不影響來自GSM的狀態碼,值移動到31-16比特。這個值由一個error類(25-16比特)和一個狀態碼(23-16比特)組成。
如果是0,表示之前發送的消息已經被收到。
public int getStatusOnIcc ()
返回消息在ICC上的狀態(已讀、未讀、已發送、未發送)。有下面的幾個值:SmsManager.STATUS_ON_ICC_FREE、SmsManager.STATUS_ON_ICC_READ、SmsManager.STATUS_ON_ICC_UNREAD、SmsManager.STATUS_ON_ICC_SEND、SmsManager.STATUS_ON_ICC_UNSENT這幾個值在上篇的SmsManager類介紹有講到。
public static SmsMessage.SubmitPdu getSubmitPdu (
String scAddress, String destinationAddress,
short destinationPort, byte[] data,
boolean statusReportRequested)
參數:scAddress -服務中心的地址(SercviceCentre address,為null即使用默認的)、destinationAddress - 消息的目的地址、destinationPort- 發送消息到目的的端口號、data - 消息數據。
返回值:一個包含編碼了的SC地址(如果指定了的話)和消息內容的SubmitPdu,否則返回null,如果編碼錯誤。
public static SmsMessage.SubmitPdu getSubmitPdu (
String scAddress, String destinationAddress,
String message, boolean statusReportRequested)
和上面類似。
public static int getTPLayerLengthForPDU (String pdu)
返回指定SMS-SUBMITPDU的TP-Layer-Length,長度單位是字節而不是十六進字符。
public long getTimestampMillis ()
以currentTimeMillis()格式返回服務中心時間戳。
public byte[] getUserData ()
返回用戶數據減去用戶數據頭部(如果有的話)
public boolean isCphsMwiMessage ()
判斷是否是CPHS MWI消息
public boolean isEmail ()
判斷是否是Email,如果消息來自一個Email網關且Email發送者(sender)、主題(subject)、解析主體(parsed body)可用,則返回TRUE。
public boolean isMWIClearMessage ()
判斷消息是否是一個CPHS 語音郵件或消息等待MWI清除(clear)消息。
public boolean isMWISetMessage ()
判斷消息是否是一個CPHS 語音郵件或消息等待MWI設置(set)消息。
public boolean isMwiDontStore ()
如果消息是一個“MessageWaiting Indication Group:Discard Message”通知且不應該保存,則返回TRUE,否則返回FALSE。
public boolean isReplace ()
判斷是否是一個“replaceshort message”SMS
public boolean isReplyPathPresent ()
判斷消息的TP-Reply-Path位是否在消息中設置了。
public boolean isStatusReportMessage ()
判斷是否是一個SMS-STATUS-REPORT消息。
常量值:

public static final int ENCODING_16BIT :值為3(0x00000003)
public static final int ENCODING_8BIT :值為2 (0x00000002)
public static final int ENCODING_UNKNOWN :值為0 (0x00000000) ,用戶數據編碼單元的大小。
public static final int MAX_USER_DATA_BYTES :值為140 (0x0000008c),表示每個消息的最大負載字節數。
public static final int MAX_USER_DATA_BYTES_WITH_HEADER :134 (0x00000086),如果一個用戶數據有頭部,該值表示它的最大負載字節數,該值假定頭部僅包含CONCATENATED_8_BIT_REFENENCE元素。
public static final int MAX_USER_DATA_SEPTETS :值為160 (0x000000a0) ,表示每個消息的最大負載septets數。
public static final int MAX_USER_DATA_SEPTETS_WITH_HEADER :值為153 (0x00000099),如果存在用戶數據頭部,則該值表示最大負載septets數該值假定頭部僅包含CONCATENATED_8_BIT_REFENENCE元素。
嵌套枚舉成員SmsMessage.MessageClass的枚舉值:

public static final SmsMessage.MessageClassCLASS_0
public static final SmsMessage.MessageClass CLASS_1
public static final SmsMessage.MessageClass CLASS_2
public static final SmsMessage.MessageClass CLASS_3
public static final SmsMessage.MessageClass CLASS_UNKNOWN
嵌套枚舉成員SmsMessage.MessageClass的公有方法:

public static SmsMessage.MessageClassvalueOf (String name):返回值的字符串的值
public static final MessageClass[] values ():返回MessageClass的值數組
嵌套類成員SmsMessage.SubmitPdu的字段:

public byte[] encodedMessage :編碼了的消息
public byte[] encodedScAddress :編碼的服務中心地址
嵌套類成員SmsMessage.SubmitPdu的公有方法:

public String toString ()
返回一個包含簡單的、可讀的這個對象的描述字符串。鼓勵子類去重寫這個方法,並提供實現對象的類型和數據。默認實現簡單地連接類名、@、十六進制表示的對象哈希碼,即下面的形式: getClass().getName() + '@' + Integer.toHexString(hashCode())

Copyright © Linux教程網 All Rights Reserved