生活中我們經常遇到一種情況,有時候一條短信過長,會發送多條,其實要想實現這個效果是很簡單的,隻要加一個條件判斷就行,所有在這裡詳細步驟我就不寫瞭,隻把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