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.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方法时已经有默认值在长度超过多少时才将短信进行多条发送
作者 w_l_j
补充:移动开发 , Android ,