1 /**发送与接收的广播**/
2 String SENT_SMS_ACTION = "SENT_SMS_ACTION";
3 String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";
4
5 private BroadcastReceiver sendMessage = new BroadcastReceiver() {
6
7 @Override
8 public void onReceive(Context context, Intent intent) {
9 Log.i("TAG", "send。。" + intent.getAction() + "---" + getResultCode() + "---" + getResultData());
10 //判断短信是否发送成功
11 switch (getResultCode()) {
12 case Activity.RESULT_OK:
13 Toast.makeText(context, "短信发送成功", Toast.LENGTH_SHORT).show();
14 break;
15 default:
16 Toast.makeText(mContext, "发送失败", Toast.LENGTH_LONG).show();
17 break;
18 }
19 }
20 };
21
22 private BroadcastReceiver receiver = new BroadcastReceiver() {
23 @Override
24 public void onReceive(Context context, Intent intent) {
25 Log.i("TAG", "receiver。。" + intent.getAction() + "---" + getResultCode() + "---" + getResultData());
26 //表示对方成功收到短信
27 Toast.makeText(mContext, "对方接收成功", Toast.LENGTH_LONG).show();
28 }
29 };
30
31 /**
32 * 参数说明
33 * destinationAddress:收信人的手机号码
34 * scAddress:发信人的手机号码
35 * text:发送信息的内容
36 * sentIntent:发送是否成功的回执,用于监听短信是否发送成功。
37 * DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。
38 */
39 private void sendSMS(String phoneNumber, String message) {
40 // ---sends an SMS message to another device---
41 SmsManager sms = SmsManager.getDefault();
42
43 // create the sentIntent parameter
44 Intent sentIntent = new Intent(SENT_SMS_ACTION);
45 PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent, 0);
46
47 // create the deilverIntent parameter
48 Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
49 PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0, deliverIntent, 0);
50
51 //如果短信内容超过70个字符 将这条短信拆成多条短信发送出去
52 if (message.length() > 70) {
53 ArrayList<String> msgs = sms.divideMessage(message);
54 for (String msg : msgs) {
55 sms.sendTextMessage(phoneNumber, null, msg, sentPI, deliverPI);
56 }
57 } else {
58 sms.sendTextMessage(phoneNumber, null, message, sentPI, deliverPI);
59 }
60 }