当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,