List<String> contents = smsManager.divideMessage(content);//多條短信。這裏是將內容較長的短信拆分成多條短信發送。
for(String text : contents){
smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent);//發送短信
}
發送短信時會有兩個結果狀態,壹個是短信是否成功發送,壹個是對方是否成功接收,是否發送成功不是由Android程序來決定的,短信是由短信基站比如移動發送的,我們只需要把短信發送到移動無線通訊網絡,網絡發送短信是否成功,移動會返回壹個信號,信號會被程序捕獲。
程序采用異步的方式捕獲信號,因為不可能壹直開著線程等待返回的信號,所以sendTextMessage()的後兩個參數sentIntent和deliveryIntent就是接受發送和接收狀態信號用的。
sentIntent為短信發送是否成功的Intent;deliveryIntent為接收方是否收到了短信的Intent,這裏如果不想接收返回的信號,可以設置為null。
把Intent傳進去後,如果移動網絡返回壹個短信發送成功或失敗的信號,操作系統會通過異步的方式廣播這個Intent,妳就知道短信的狀態了。