使用SmsManager服务群发短信

SmsManager是Android提供的一个非常常见的服务,SmsManager提供了一系列sendXxxMessage()方法用于发送短信,不过短信通常都是普通文本,调用sendTextMessage()即可。群发短信的实现也十分简单,只要让程序遍历每个收件人号码并依此发送短信即可。下面用一个简单实例来演示:

package com.guyun.sendsms;

import java.util.ArrayList;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SendSmsActivity extends Activity {
	private EditText content;
	private Button sendBtn;
	// 记录需要群发的号码列表
	private ArrayList<String> sendList = new ArrayList<String>();
	// 声明短信管理器SmsManager对象
	private SmsManager sManage;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		content = (EditText) findViewById(R.id.main_content);
		sendBtn = (Button) findViewById(R.id.main_btn_send);
		// 获取系统SmsManager服务
		sManage = SmsManager.getDefault();
		initSendList();
		sendBtn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				String contentStr = content.getText().toString();
				for (int i = 0; i < sendList.size(); i++) {
					String number = sendList.get(i);
					// 创建一个PendingIntent对象
					PendingIntent pi = PendingIntent.getActivity(
							SendSmsActivity.this, 0, new Intent(), 0);
					// 发送短信
					sManage.sendTextMessage(number, null, contentStr, pi, null);
				}
				// 提示短息群发完成
				Toast.makeText(SendSmsActivity.this, "短信群发完成!",
						Toast.LENGTH_LONG).show();
			}
		});
	}

	/**
	 * 初始化群发名单的集合
	 */
	private void initSendList() {
		sendList.add("15680768383");
		sendList.add("15680768384");
		sendList.add("15680768385");
		sendList.add("15680768386");
		sendList.add("15680768387");
		sendList.add("15680768387");
	}

}

加上权限:

<uses-permission android:name="android.permission.SEND_SMS"/>

注意:在本文中,只是简单地手动初始化群发名单,此示例可以做如下改进:

1、群发名单应从系统联系人中选取,即需要读取系统联系人,并显示在一个ListView中提供复选框供用户选择。
2、选择后的群发名单再放入上面集合中。

 

posted @ 2013-07-11 18:07  坚固66  阅读(314)  评论(0编辑  收藏  举报