5.4.3 發送短信

5.4.3 發送短信

在“發送短信”按鈕的單擊事件處理的回調方法onClick()的實現中,實現發送短信的功能。

btnSendSMS.setOnClickListener(new View.OnClickListener() {  

public void onClick(View v) {  
String 
phoneNo
 = 
txtPhoneNo
.getText().toString();  
String 
message
 = 
txtMessage
.getText().toString();  
if (phoneNo.length()
>
0 && message.length()
>
0){  
sendSMS(phoneNo, message);  
} else {  
Toast.makeText(TinySMS.this,  
"請重新輸入電話號碼和短信內容",Toast.LENGTH_LONG).show();  
}  
}  
}); 

讀者可能已經注意到,TinySMS並不是使用Intent激活Android自帶的短信程序,而是直接使用了一個叫做sendSMS的方法,該方法的實現爲:

  1. private void sendSMS(String phoneNumber, String message) {  
  2. PendingIntent  pi  =  PendingIntent .getActivity(this, 0,  
  3. new Intent(this, TinySMS.class), 0);  
  4. SmsManager  sms  =  SmsManager .getDefault();  
  5. sms.sendTextMessage(phoneNumber, null, message, pi, null);  

SmsManager是android.telephony.gsm.SmsManager中定義的用戶管理短信應用的類。它的用法有點特殊,開發 人員不用直接實例化SmsManager類,而只需要調用靜態方法getDefault()獲得SmsManger對象,方法 sendTextMessage()用於發送短信到指定號碼。在上面這段代碼中,我們使用了一個PendingIntent的對象,該對象指向 TinySMSActivity。因此當用戶按下“發送短信”鍵之後,用戶界面會重新回到TinySMS的初始界面。

在Android的模擬器中對短信或電話提供了非常方便的測試功能。用戶只需要在Windows命令行中輸入emulator再啓動一個 Android模擬器,這樣就可以實現兩個手機間的電話或者短信的測試。需要說明的是,每個模擬器左上角的數字代表了該模擬器的電話號碼。比如我們現在有 兩個模擬器,號碼分別是5556和5554,從5556發送短信Hello, This is 5556到5554的效果如圖5-11所示:圖左側的模擬器(5556)發送短信到右側的模擬器(5554)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章