Android---47---短信群发功能

来源:互联网 发布:鬼吹灯小说解密知乎 编辑:程序博客网 时间:2024/06/04 17:42

提供一个带列表的对话框供用户选择群发短信的收件人号码,程序则使用了一个ArrayList<String>集合来保存所有的收件人的号码
为了实现群发功能,程序循环遍历ArrayList中的号码,依次向每个号码发送短信即可。



public class MainActivity extends Activity {EditText numbers, content;Button select, send;SmsManager smsManager;// 记录列表ArrayList<String> sendlist = new ArrayList<String>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);smsManager = SmsManager.getDefault();numbers = (EditText) findViewById(R.id.numbers);content = (EditText) findViewById(R.id.content);select = (Button) findViewById(R.id.select);send = (Button) findViewById(R.id.send);send.setOnClickListener(new OnClickListener() {@SuppressWarnings("deprecation")@Overridepublic void onClick(View v) {// 一个一个去发送短信for (String number : sendlist) {PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, new Intent(), 0);smsManager.sendTextMessage(number, null, content.getText().toString(), pi, null);}Toast.makeText(MainActivity.this, "短信群发完成", 8000).show();}});// 选择联系人select.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 查询联系人的电话号码// ContentResolver.query(Uri uri, String[] projection, String// selection, String[] selectionArgs, String sortOrder)final Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, null, null, null);BaseAdapter adapter = new BaseAdapter() {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn cursor.getCount();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView,ViewGroup parent) {cursor.moveToPosition(position);CheckBox rb = new CheckBox(MainActivity.this);// 获取联系人的电话号码,并去掉中间的中划线、空格String number = cursor.getString(cursor.getColumnIndex(CommonDataKinds.Phone.NUMBER)).replace("-", "").replace(" ", "");rb.setText(number);if (isChecked(number)) {rb.setChecked(true);}return rb;}};// 加载list.xml布局文件对应的view界面View selectView = getLayoutInflater().inflate(R.layout.list,null);// 获取selectView中名为list的ListView组件final ListView listView = (ListView) selectView.findViewById(R.id.list);listView.setAdapter(adapter);new AlertDialog.Builder(MainActivity.this).setView(selectView).setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// 清空sendlist.clear();// 遍历listView组件的每个列表项for (int i = 0; i < listView.getCount(); i++) {CheckBox checkBox = (CheckBox) listView.getChildAt(i);// 如果该列表项被勾选if (checkBox.isChecked()) {// 添加该列表项的电话号码sendlist.add(checkBox.getText().toString());}}numbers.setText(sendlist.toString());}}).show();}});}// 判断某个号码是否已在群发范围内public boolean isChecked(String phone) {for (String s1 : sendlist) {if (s1.equals(phone)) {return true;}}return false;}}




1 0
原创粉丝点击