生活中我们经常遇到一种情况,有时候一条短信过长,会发送多条,其实要想实现这个效果是很简单的,只要加一个条件判断就行,所有在这里详细步骤我就不写了,只把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.divideMessage(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时才会分为两个短信发送的。本人觉得可能是它内部在调用divideMessage方法时已经有默认值在长度超过多少时才将短信进行多条发送