android短信管理器SmsManager实例详解

时间:2022-07-28
本文章向大家介绍android短信管理器SmsManager实例详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文实例为大家分享了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  

以上就是本文的全部内容,希望对大家的学习有所帮助。