前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android短信管理器SmsManager实例详解

android短信管理器SmsManager实例详解

作者头像
砸漏
发布2020-10-27 22:10:56
8080
发布2020-10-27 22:10:56
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

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

需要注册的权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.READ_CONTACTS"/  
<uses-permission android:name="android.permission.SEND_SMS"/  

群发短信

代码语言:javascript
复制
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; 
} 
} 
代码语言:javascript
复制
<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  
代码语言:javascript
复制
<?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  

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档