首页 > 系统 > Android > 正文

android短信管理器SmsManager实例详解

2019-10-22 18:23:21
字体:
来源:转载
供稿:网友

本文实例为大家分享了android短信管理器SmsManager的具体代码,供大家参考,具体内容如下

需要注册的权限

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

群发短信

package com.android.xiong.groupsend;  import java.util.ArrayList; import java.util.List;  import android.app.Activity; import android.app.AlertDialog; import android.app.PendingIntent; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.telephony.SmsManager; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast;  public class MainActivity extends Activity {    private Button bt1, bt2;   private EditText ed1, ed2;   private SmsManager sManger;   List<String> sendList = new ArrayList<String>();    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     bt1 = (Button) findViewById(R.id.bt1);     bt2 = (Button) findViewById(R.id.bt2);     ed1 = (EditText) findViewById(R.id.ed1);     ed2 = (EditText) findViewById(R.id.ed2);     // 获取SmsManger     sManger = SmsManager.getDefault();     bt1.setOnClickListener(new OnClickListener() {        @Override       public void onClick(View v) {         for (String send : sendList) {           // 创建PendIntent对象           PendingIntent ped = PendingIntent.getActivity(               MainActivity.this, 0, new Intent(), 0);           // 发送信息           sManger.sendTextMessage(send, null, ed2.getText()               .toString(), ped, null);         }         // 提示消息发送完毕         Toast.makeText(MainActivity.this, "短信群发完", Toast.LENGTH_LONG)             .show();       }     });     bt2.setOnClickListener(new OnClickListener() {        @Override       public void onClick(View v) {         // 查看联系人的电话号码         final Cursor cursor = getContentResolver().query(             ContactsContract.CommonDataKinds.Phone.CONTENT_URI,             null, null, null, null);         BaseAdapter adapter = new BaseAdapter() {            @Override           public View getView(int position, View convertView,               ViewGroup parent) {             cursor.moveToPosition(position);             CheckBox rb = new CheckBox(MainActivity.this);             // 获取联系人的电话号码 并去掉中间的中画、空格             String number = cursor                 .getString(                     cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))                 .replace("-", "");             rb.setText(number);             // 如果该号码已经加入发送人名单,默认勾选该号码             if (sendList.contains(number)) {               rb.setChecked(true);             }             return rb;           }            @Override           public long getItemId(int position) {             // TODO Auto-generated method stub             return position;           }            @Override           public Object getItem(int position) {             // TODO Auto-generated method stub             return position;           }            @Override           public int getCount() {             // TODO Auto-generated method stub             return cursor.getCount();           }         };         // 加载list.xml布局文件对应的View         View selectView = getLayoutInflater().inflate(R.layout.item,             null);         final ListView listView = (ListView) selectView             .findViewById(R.id.list1);         listView.setAdapter(adapter);         new AlertDialog.Builder(MainActivity.this).setView(selectView).setPositiveButton("确定", new DialogInterface.OnClickListener() {                      @Override           public void onClick(DialogInterface dialog, int which) {             //清空sendList集合             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());                 ed1.append(checkBox.getText().toString()+",");               }             }                        }         }).show();       }     });   }    @Override   public boolean onCreateOptionsMenu(Menu menu) {     // Inflate the menu; this adds items to the action bar if it is present.     getMenuInflater().inflate(R.menu.main, menu);     return true;   }  } 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="vertical"   tools:context=".MainActivity" >      <EditText      android:id="@+id/ed1"     android:layout_width="match_parent"     android:layout_height="wrap_content"/>   <EditText      android:id="@+id/ed2"     android:layout_width="match_parent"     android:layout_height="wrap_content"     />   <Button      android:id="@+id/bt2"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:text="获取联系人"/>   <Button      android:id="@+id/bt1"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:text="发送信息"/>  </LinearLayout> 
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="vertical" >     <ListView     android:id="@+id/list1"     android:layout_width="match_parent"     android:layout_height="wrap_content" >   </ListView>  </LinearLayout> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表