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.....)