android案例之當字數超過一定限制時發送多條短信

生活中我們經常遇到一種情況,有時候一條短信過長,會發送多條,其實要想實現這個效果是很簡單的,隻要加一個條件判斷就行,所有在這裡詳細步驟我就不寫瞭,隻把activity中的內容貼出來 
package cn.csdn; 
import java.util.List; 
import android.app.Activity; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.gsm.SmsManager; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
public class SendMessageActivity extends Activity implements OnClickListener{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        //獲取當前視圖下面的組件 
        Button sendBtn=(Button) findViewById(R.id.send); 
        //註冊事件 
        sendBtn.setOnClickListener(this); 
    } 
    @SuppressWarnings("deprecation") 
    @Override 
    public void onClick(View v) { 
        // TODO Auto-generated method stub 
        EditText user=(EditText) findViewById(R.id.user); 
        EditText content=(EditText) findViewById(R.id.content); 
        //信息管理對象 
        SmsManager smsManager=SmsManager.getDefault(); 
        //意圖      後三個參數所代表的        請求碼      普通的意圖       狀態 
        PendingIntent intent=PendingIntent.getBroadcast(SendMessageActivity.this, 0, new Intent(), 0); 
        //如果字數超過70,需拆分為多條短信發送 
        String con=content.getText().toString(); 
        if(content.length()>70){ 
            List<String> msgs=smsManager.pideMessage(con); 
            for(String msg:msgs){ 
                smsManager.sendTextMessage(user.getText().toString(), null, msg, 
                        intent, null); 
            } 
        }else{ 
            smsManager.sendTextMessage(user.getText().toString(), null, content.getText().toString(), 
                    intent, null); 
        }        
        //提示信息發送成功 
        Toast.makeText(SendMessageActivity.this, "信息發送成功", Toast.LENGTH_LONG).show(); 
    } 

註意:我在測試時不是content.length()設置為大於4,在發短信時發5個就會分成兩個短息去發送的。隻有短信內容超過70時才會分為兩個短信發送的。本人覺得可能是它內部在調用pideMessage方法時已經有默認值在長度超過多少時才將短信進行多條發送 

 

作者 w_l_j

發佈留言