灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2968回复:0

android案例之当字数超过一定限制时发送多条短信

楼主#
更多 发布于:2012-09-06 14:01

生活中我们经常遇到一种情况,有时候一条短信过长,会发送多条,其实要想实现这个效果是很简单的,只要加一个条件判断就行,所有在这里详细步骤我就不写了,只把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


喜欢0 评分0
游客

返回顶部