天天看點

android 發短信意圖,安卓實作發送短信小程式代碼示例

這篇文章主要介紹了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