Android 群发短信
2014-11-24 13:11
309 查看
manifest.xml中加权限
main.xml
MainActivity.java
<uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.SEND_SMS"/>
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <EditText android:id="@+id/smsBody" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/select"/> <Button android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/send"/> </LinearLayout> <EditText android:id="@+id/people" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
MainActivity.java
package com.example; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import android.app.Activity; import android.app.PendingIntent; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.PhoneLookup; import android.telephony.PhoneNumberUtils; import android.telephony.gsm.SmsManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements OnClickListener{ Button select;//选择联系人按钮 Button send;//发送 EditText people;//以及选择的联系人 HashMap<String, String> peoples = new HashMap<String, String>();//存储着算选择的所有 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);//设置当前显示的用户界面 select = (Button) this.findViewById(R.id.select);//得到select按钮 send = (Button) this.findViewById(R.id.send);//得到send按钮 people = (EditText) this.findViewById(R.id.people);//得到people按钮 select.setOnClickListener(this);//设置监听 send.setOnClickListener(this);//设置监听 } @Override public void onClick(View v) {//重写的按钮监听方法 if(v == select){//按下了选择联系人按钮 Uri uri = Uri.parse("content://contacts/people"); Intent intent = new Intent(Intent.ACTION_PICK, uri);//创建Intent startActivityForResult(intent, 1);//切换到通讯录 } else if(v == send){//按下发送按钮 v.setEnabled(false);//设置按钮为不可用 //获取输入的短信内容 EditText etSms=(EditText)findViewById(R.id.smsBody);//得到EditText控件的引用 String smsStr=etSms.getText().toString();//得到短信的文本 Set keySet = peoples.keySet();//得到键值集合 Iterator ii = keySet.iterator(); people.setText("");//置空 while(ii.hasNext()){//循环 Object key = ii.next();//得到键值 String tempName = (String)key;//姓名 String tempPhone = peoples.get(key);//得到电话号码 //判断号码字符串是否合法 if(PhoneNumberUtils.isGlobalPhoneNumber(tempPhone)){//合法则发送短信 sendSMS(tempPhone,smsStr,v);//发送短信 } } } } private void sendSMS(String telNo,String smsStr,View v){//自己开发的直接发送短信的方法 PendingIntent pi= PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_3.class), 0); SmsManager sms=SmsManager.getDefault(); sms.sendTextMessage(telNo, null, smsStr, pi, null);//发送短信 v.setEnabled(true);//短信发送完成后恢复发送按钮的可用状态 } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == 1){//requestCode码与发送时相同时 Uri myUri = data.getData(); if(myUri != null){//当不为空时 try{ //得到ContentResolver对象 ContentResolver cr = getContentResolver(); Cursor c = managedQuery(myUri, null, null, null, null); c.moveToFirst(); // 取得联系人名字 int nameFieldColumnIndex = c.getColumnIndex(PhoneLookup.DISPLAY_NAME); String sName = c.getString(nameFieldColumnIndex); //得到姓名 //取得联系人ID String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); // 取得电话号码(当存在多个号码,只取一个) String strPhoneNumber = ""; if(phone.moveToNext()){//得到一个电话号码 strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } peoples.put(sName, strPhoneNumber);//存放到容器中 Set keySet = peoples.keySet();//键值集合 Iterator ii = keySet.iterator(); people.setText("");//置空 while(ii.hasNext()){ Object key = ii.next();//得到键值 String tempName = (String)key;//姓名 String tempPhone = peoples.get(key);//得到电话号码 people.setText(people.getText() + tempName + ":" + tempPhone+"\n"); } }catch(Exception e){//捕获异常 e.printStackTrace();//打印异常信息 } } } super.onActivityResult(requestCode, resultCode, data); } }
相关文章推荐
- android群发短信到通讯录所有联系人上并动态替换其中联系人信息
- android 短信群发
- android群发短信到通讯录所有联系人上并动态替换其中联系人信息
- Android 群发短信试列
- android群发短信时判断短信是否发送成功
- Android-通讯录:在群发短信选取联系人界面用到的自定义viewgroup
- Android-通讯录:获取短信会话列表(包括群发的)
- Android 群发短信的实现
- Android群发短信草稿保存与发送机制
- Android下实现短信群发功能
- Android---47---短信群发功能
- Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2
- android 调用系统,群发短信
- android群发短信到通讯录所有联系人上并动态替换其中联系人信息
- Android发送短信(短信发送以及群发和从电话本选择联系人)---短信管家2
- android发送短信的两种方式,发送长短信的两种方式,群发短信
- Android SmsManager 短信群发
- Android 获取SIM卡信息,以及短信的发送和群发
- Android开发(一)发送短信程序
- 调用android平台功能-拨号,地图,网页,短信,Email,播放多媒体