1. 程式人生 > >安卓開發中傳送簡訊的方法 APP內單發簡訊 群發簡訊 APP跳轉到簡訊頁 單條簡訊 多條簡訊Intent跳轉

安卓開發中傳送簡訊的方法 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