安卓开发中发送短信的方法 APP内单发短信 群发短信 APP跳转到短信页 单条短信 多条短信Intent跳转

1.APP内部直接发送短息 包括发送单条短信 发送多条短信

APP内部发送短信首先要获取一个发送短信的权限

<uses-permission android:name="android.permission.SEND_SMS"/>

安卓6.0以上的手机要动态获取到这个权限

获取到权限后 就可以在APP内部发送了

/**
 * 发送短信
 *
 * @param tel     电话号码
 * @param content 短息内容
 */
private void sendMessage2(String tel, String content) {
    Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
    PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0, deliverIntent, 0);

    SmsManager smsManager = SmsManager.getDefault();
    List<String> divideContents = smsManager.divideMessage(content);
    for (String text : divideContents) {
        smsManager.sendTextMessage(tel, null, text, null, deliverPI);
    }
}

如果想多条发送:For 循环 要发送的短信的联系人手机号码  和单条一样 一条 一条发送 

public void sendGroupMessage(String value) {
    for (UploadContactBean uploadContactBean : selectContactList) {
        Intent deliverIntent = new Intent(SENT_SMS_ACTION);
        PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0, deliverIntent, 0);
        SmsManager smsManager = SmsManager.getDefault();
        List<String> divideContents = smsManager.divideMessage(value);
        for (String text : divideContents) {
            smsManager.sendTextMessage(uploadContactBean.getPhoneNumber(), null, text, null, deliverPI);
        }
        ToastHelper.showShortMessage("Send group message success");
    }
}

2.如果不想获取到SEND_SMS权限  那就选择Intent跳转到短信页面 让用户自己主动发送

如果是单条短信跳转:

/**
 * 发送短信(掉起发短信页面)
 *
 * @param tel     电话号码
 * @param content 短息内容
 */
private void sendMessage3(String tel, String content) {
    if (PhoneNumberUtils.isGlobalPhoneNumber(tel)) {
        Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + tel));
        intent.putExtra("sms_body", content);
        startActivity(intent);
    }
}

如果想带着多个联系人 群发短信到跳转到短信页面:

public void sendGroupSMSMessage() {
    String phoneNumber = "";
    for (UploadContactResponse response : mContactSelectedList) {
        phoneNumber = phoneNumber + "," + StringUtils.trim(response.getPhoneNumber());
    }
    Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber));
    intent.putExtra("sms_body", content); 
   startActivity(intent);
}

群发Intent和单发Intent短信的区别在于要发短信的联系人单条是:Uri.parse("smsto:" + tel)
多条是:Uri.parse("smsto:" + tel1+","+tel2+","+tel3.....)

GitHub 地址:https://github.com/HuaDanJson/AndroidGetContacts

猜你喜欢

转载自blog.csdn.net/Jason_HD/article/details/82683467