在上一篇的《Android短信发送器》其中,发送功能并不完善,当发送内容超过限定字数时,短信就会发送失败,此时就需要判断内容是否超过限制,如果不超过限制,就直接发送,反之,则对其进行处理再发送,这就需要一个函数来对其进行分割,divideMessage()函数正好实现这个功能,其返回值为list类型,所以需要先new一个list对象。整体伪代码表示如下:
if(文本内容 < 70) 直接发送;else{ 创建list对象,接受divideMessage(文本内容)返回值; 遍历短信内容,发送短信;}修改代码如下:
- //响应按钮单击事件
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.button1:
- //获取两个editText中的内容
- String num = et_num.getText().toString().trim();
- String content = et_content.getText().toString().trim();
- //若号码或内容为空就发出警告
- if (TextUtils.isEmpty(num)||TextUtils.isEmpty(content))
- Toast.makeText(this, R.string.warning1, 1).show();
- else
- { //获取短信管理器,导入包Android.telephony.SmsManager
- SmsManager sm = SmsManager.getDefault();
- List<String> contents = sm.divideMessage(content);
- for(String sms:contents) //遍历短信内容
- //系统发送短信API
- sm.sendTextMessage(num, null, content, null, null);
- }
- break;
- default:
- break;
- }
- }