使用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、选择后的群发名单再放入上面集合中。