這篇文章主要介紹了Android開發中實作發送短信的小程式示例,文中還附帶了一個監聽廣播接收者的更新版短信發送例子,需要的朋友可以參考下
上圖為代碼結構圖。
現在我們看下具體的代碼。
Send.java
main.xml
AndroidManifest.xml
最終效果圖為:
和打電話小程式一樣,這裡也需要開啟兩個AVD才能進行功能測試。
碎碎念:
發短信應用的主要的類就是SmsManager。 在 Android 2.0 以前 應該使用 android.telephony.gsm.SmsManager
之後應該用 android.telephony.SmsManager;
意思為擷取系統預設的資訊管理器
smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)
-- destinationAddress:目标電話号碼
-- scAddress:服務商的短信中心号碼(例如中國移動的短信中心号碼),測試可以不填。
-- text: 短信内容
-- sentIntent:發送 -->中國移動 --> 中國移動發送失敗 --> 傳回發送成功或失敗信号 --> 後續處理 即,這個意圖包裝了短信發送狀态的資訊
-- deliveryIntent: 發送 -->中國移動 --> 中國移動發送成功 --> 傳回對方是否收到這個資訊 --> 後續處理 即:這個意圖包裝了短信是否被對方收到的狀态資訊(供應商已經發送成功,但是對方沒有收到)。
public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)
傳回一個用于廣播的PendingIntent,類似于調用Context.sendBroadcast()函數
requestCode 暫時不用
intent 是用于廣播的intent
flag 有:FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT 用于設定建立的PendingIntent是使用一次、如無則不建立、取消目前、更新目前等屬性。
此外,我們還要在AndroidManifest.xml中聲明短信發送權限。
有的時候,我們兩個AVD進行模拟發短信時,會發現有時候該程式無法正常使用。系統會提示我們NO DNS servers found,找不到DNS服務。這種情況一般是由于你的電腦沒有聯入網絡的原因造成的。
發送短信:
顯示寫短信界面:
發送電子郵件:
在雲裡,為各行業商戶搭建自己的小程式。微信号:zaiyunli002