Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android提供的系統服務之--SmsManager(短信管理器)

Android提供的系統服務之--SmsManager(短信管理器)

編輯:關於Android編程

Android提供的系統服務之--SmsManager(短信管理器)

--轉載請注明出處:coder-pig



SmsManager相關介紹以及使用圖解:


\



<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPjxzdHJvbmc+tbHIu86qwcu3vbHjuPfOuyyw0bT6wuvVs9K71bOwySy+zbK708PC6beztPO80tC0tPrC68HLOjwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz7T0NDo0qq1xMqxuvK+zbi01sbVs8z5z8KwySE8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+MSm199PDz7XNs7eiy822zNDFtcS5psTcOjwvc3Ryb25nPjwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;"> public void SendSMSTo(String phoneNumber,String message){ //判斷輸入的phoneNumber是否為合法電話號碼 if(PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)){ //Uri.parse("smsto") 這裡是轉換為指定Uri,固定寫法 Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+phoneNumber)); intent.putExtra("sms_body", message); startActivity(intent); } }


2)調用系統提供的短信接口發送短信:

public void sendSMS(String phoneNumber,String message){  
    //獲取短信管理器   
    android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();  
    //拆分短信內容(手機短信長度限制),貌似長度限制為140個字符,就是
    //只能發送70個漢字,多了要拆分成多條短信發送
    //第四五個參數,如果沒有需要監聽發送狀態與接收狀態的話可以寫null    
    List divideContents = smsManager.divideMessage(message);   
    for (String text : divideContents) {    
        smsManager.sendTextMessage(phoneNumber, null, text, sentPI, deliverPI);    
    }  
} 


處理發送狀態的PendingIntent:

//處理返回的發送狀態   
String SENT_SMS_ACTION = "SENT_SMS_ACTION";  
Intent sentIntent = new Intent(SENT_SMS_ACTION);  
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,  0);  
//注冊發送信息的廣播接收者
context.registerReceiver(new BroadcastReceiver() {  
    @Override  
    public void onReceive(Context _context, Intent _intent) {  
        switch (getResultCode()) {  
        case Activity.RESULT_OK:
			Toast.makeText(context, "短信發送成功", Toast.LENGTH_SHORT).show();  
			break;  
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:    //普通錯誤
			break;
        case SmsManager.RESULT_ERROR_RADIO_OFF:  		//無線廣播被明確地關閉
			break; 			
        case SmsManager.RESULT_ERROR_NULL_PDU:          //沒有提供pdu
			break;		
		case SmsManager.RESULT_ERROR_NO_SERVICE:         //服務當前不可用
			break;				
        }  
    }  
}, new IntentFilter(SENT_SMS_ACTION));  


處理接收狀態的PendingIntent:

//處理返回的接收狀態   
String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";  
//創建接收返回的接收狀態的Intent  
Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);  
PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,deliverIntent, 0);  
context.registerReceiver(new BroadcastReceiver() {  
   @Override  
   public void onReceive(Context _context, Intent _intent) {  
       Toast.makeText(context,"收信人已經成功接收", Toast.LENGTH_SHORT).show();  
   }  
}, new IntentFilter(DELIVERED_SMS_ACTION)); 






















  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved