安卓開發中傳送簡訊的方法 APP內單發簡訊 群發簡訊 APP跳轉到簡訊頁 單條簡訊 多條簡訊Intent跳轉
阿新 • • 發佈:2018-11-02
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