android短信管理器SmsManager实例详解
程序员文章站
2023-11-27 12:50: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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
android之camera用法实例详解
-
Android TextView Marquee的应用实例详解
-
Android使用SmsManager实现短信发送功能
-
android短信管理器SmsManager实例详解
-
Android 中Lambda表达式的使用实例详解
-
Android ViewPagerIndicator详解及实例代码
-
Android Kotlin开发实例(Hello World!)及语法详解
-
Android Fragment滑动组件ViewPager的实例详解
-
Android ListView中动态添加RaidoButton的实例详解
-
Android 带清除功能的输入框控件实例详解