[android开发]发送短信

来源:互联网 发布:java o2o 商城源码 编辑:程序博客网 时间:2024/05/03 15:58



发送单条短信:

private void sendSingleSms(String phone, String content) {SmsManager smsManager = SmsManager.getDefault();List<String> texts = smsManager.divideMessage(content);// 发送之前检查短信内容是否为空for (int i = 0; i < texts.size(); i++) {String text = texts.get(i);Intent itSend = new Intent(INTENT_SEND_STATE);PendingIntent mSendPI = PendingIntent.getBroadcast(getApplicationContext(), 0, itSend, PendingIntent.FLAG_ONE_SHOT);// 这里requestCode和flag的设置很重要,影响数据KEY_PHONENUM的传递。smsManager.sendTextMessage(phone, null, content, mSendPI, null);}}


关于上面的sendTextMessage方法的第三个参数mSendPI,  它是短信发送结果的一个返回, 当短信 发送成功/发送失败 的时候就会执行该 PendingIntent, 我这里是让他发送一个广播.


广播接收器:

private BroadcastReceiver receiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (getResultCode() == RESULT_OK)success_count++;elsefail_count++;setSendTitle(success_count, fail_count);if ((success_count + fail_count) == phone_numbers.size()) {showToast("短信已全部发送");}}};

RESULT_OK即成功, 否则是失败.

另外附上发送多条短信的方法:

private void sendSms(ArrayList<String> phone_numbers, String content) {try {runOnUiThread(new Runnable() {@Overridepublic void run() {setSendTitle(success_count, fail_count);}});for (String phone_number : phone_numbers) {sendSingleSms(phone_number, content);}} catch (Exception e) {showToast("获取权限失败");}}





0 0
原创粉丝点击