android发送短信

1、获取短信管理器

SmsManager sm = SmsManager.getDefault();

2、切割短信,把长短信分成若干个小短信

ArrayList smss = sm.divideMessage(content);

3、for循环把集合中所有的短信全部发出去

for(String string : smss){
sm.sendTextMessage(phone,null,string,null,null);
}

4、sendTextMessage参数含义

Parameters

destinationAddress 短信接收人的电话号码
scAddress 短信服务中心,如果为null,就是用当前默认的短信服务中心
text 短信内容
sentIntent 如果不为null,当短信发送成功或者失败时,这个PendingIntent会被广播出去。(我们可以建立一个recevier来通知用户短信发送成功或者失败)
成功的结果代码是Activity.RESULT_OK,
或者下面这些错误之一 :
RESULT_ERROR_GENERIC_FAILURE
RESULT_ERROR_RADIO_OFF
RESULT_ERROR_NULL_PDU

示例代码:

//发送短信函数
private void sendMsgToPerson(Context context, Person p) {
        SmsManager smsManager = SmsManager.getDefault();
        Intent sendIntent = new Intent("SENT_SMS_ACTION");
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, sendIntent, 0);
        //person是我自定义的一个类,可以通过getPhnum()来获得手机号码
        //短信发送后将会触发一个广播,在广播接收器里可以判断发送成功或者失败
        smsManager.sendTextMessage(p.getPhnum(), null, p.getContent(), pi, null);
    }

//短信发送的广播接收器
public class sendMsgReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent arg1) {
        if (getResultCode() == Activity.RESULT_OK) {

            Toast.makeText(context, "发送成功", Toast.LENGTH_LONG).show();

        } else {

            Toast.makeText(context, "发送失败", Toast.LENGTH_LONG).show();

        }
    }


你可能感兴趣的:(android,短信)