专栏首页恩蓝脚本android短信管理器SmsManager实例详解

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  

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 中 ActivityLifecycleCallbacks的实例详解

    Android 中 ActivityLifecycleCallbacks的实例详解

    砸漏
  • android实现左右侧滑菜单效果

    在android开发中,左右侧滑菜单的开发已成为我们现在开发的必备技术之一,再次之前,我没有做过相类似的demo,但是项目的开发有要求有这样的效果,而且大家都知...

    砸漏
  • Android单选按钮RadioButton的使用详解

    RadioButton是最普通的UI组件之一,继承了Button类,可以直接使用Button支持的各种属性和方法。

    砸漏
  • Android Studio实现长方体表面积计算器

    本文实例为大家分享了Android Studio实现长方体、表面积计算器的具体代码,供大家参考,具体内容如下

    砸漏
  • Android自定义PopWindow带动画向下弹出效果

    本文实例为大家分享了PopWindow实现带动画向下弹出效果的具体代码,供大家参考,具体内容如下

    砸漏
  • 自定义支持读取XML属性的View

    在Android中,添加一个View很简单,简单的你可以简简单单地使用xml和一部分简单的java代码就可以搞定。 比如这样

    技术小黑屋
  • 关于安卓开发实现双状态按钮

    听着music睡
  • Android单选按钮RadioButton的使用详解

    RadioButton是最普通的UI组件之一,继承了Button类,可以直接使用Button支持的各种属性和方法。

    砸漏
  • GetAPictureFromInternet网络编程

    这是《Android 4.0网络编程详解》书上的一个例子,可能是由于版本的原因吧,报了很多错。 新建android工程GetAPictureFromInte...

    提莫队长
  • 仿今日头条顶部导航效果

     之前发现很多人在群里面、论坛上求网易新闻客户端的源码,之后我就去下了个网易新闻客户端和今日头条新闻客户端,发现他们的大体是一样的,于是在最近的空闲时间,便去琢...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券