短信群发与短信单发的区别在于群发时同一个内容可以对应多个目标手机号码,而单发一次只能有一个目标手机号码;当然我们也可用使用单发的形式来实现短信的群发,这样做的结果可能就是所发的短信条数比较多,还有就是比较麻烦;其实Android提供了短信群发的机制,在这里我们就以代码一的形式来说明一下Android下短信群发实现,代码如下:

import java.util.HashSet;
import java.util.Set;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;/*** 短信群发 并将数据保存到数据库* */
public class SmsActity extends Activity {String SENT_SMS_ACTION = "SENT_SMS_ACTION";String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";public static final Uri SMS_URI = Uri.parse("content://sms/");private EditText edit_no;private EditText edit_body;private Button button;private String body;// 短信内容private String[] address; //@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sms_send);edit_no = (EditText) findViewById(R.id.phone);edit_body = (EditText) findViewById(R.id.body);button = (Button) findViewById(R.id.b_send);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String p = edit_no.getText().toString();body = edit_body.getText().toString();// 不同电话号码用,隔开 如果是中文,请修改否则无法拆分address = p.split(","); Set<String> addr = new HashSet<String>();for (int i = 0; i < address.length; i++) {addr.add(address);}// 通过这个方法往SMs中插入数据时threads表也会更新long id = Threads.getOrCreateThreadId(SmsActity.this, addr);sendSMS(addr, body, id);edit_no.setText("");edit_body.setText("");}});}public void sendSMS(Set<String> phone, String body, long threadId) {SmsManager msg = SmsManager.getDefault();Intent send = new Intent(SENT_SMS_ACTION);// 短信发送广播PendingIntent sendPI = PendingIntent.getBroadcast(this, 0, send, 0);Intent delive = new Intent(DELIVERED_SMS_ACTION);// 发送结果广播PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0, delive, 0);// 将数据插入数据库ContentValues cv = new ContentValues();for (String pno : phone) {msg.sendTextMessage(pno, null, body, sendPI, deliverPI);cv.put("thread_id", threadId);cv.put("date", System.currentTimeMillis());cv.put("body", body);cv.put("read", 0);cv.put("type", 2);cv.put("address", pno);this.getContentResolver().insert(SMS_URI, cv);}}protected void onResume() {super.onResume();// 注册监听registerReceiver(sendMessage, new IntentFilter(SENT_SMS_ACTION));}BroadcastReceiver sendMessage = new BroadcastReceiver() {@Overridepublic void onReceive(Context c, Intent intent) {// 判断短信是否成功switch (getResultCode()) {case Activity.RESULT_OK:Toast.makeText(SmsActity.this, "发送成功!", Toast.LENGTH_SHORT).show();break;default:Toast.makeText(SmsActity.this, "发送失败!", Toast.LENGTH_SHORT).show();break;}}};
}

Android下实现短信群发功能相关推荐

  1. Qt Java 实现短信群发功能 从搭建环境到功能实现

    首先声明 没有博主的允许不得转载 这个功能是我做windows项目其中的一部分功能,感觉Qt短信群发功能在网上用例比较少,需求的人也很多,故而写下此技术博客希望Qt开发的人员有所帮助. Qt在实现短信 ...

  2. PyQt开发的手机同步软件(方便的电话本编辑和短信群发功能)

    自己平时摆弄自己的破山寨iphone时,很多地方令人不爽,于是乎想到写一款支持电话本编辑和短信群发的软件. 还是先上效果图: 至于软件的实现没啥技术含量,在此不作说明. 软件简单介绍: 1.由于软件的 ...

  3. Android 短信群发功能的实现

    随着互联网的发展,即时通讯变得越来于重要,逢年过节都要给亲朋好友发祝贺短信,今天我们就来看一下Android如何实现群发短信. 但是在Android 4.4开始系统默认的短信应用才具备短信的手法功能, ...

  4. [Android]手机短信验证功能

    介绍 短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息验证支付等.短信验证利用短信验证码来注册会员,大大降低了非法注册,很大程度上提高了用户账户的安全性. 目前市面上已经有了很多提供 ...

  5. 小程序群发短信,借助云开发5行代码实现短信群发功能

    我们上面给单个手机发送验证码的功能实现了,接下来就教大家如何群发短信. 老规矩,先看效果图 1,编写wxml页面 简单起见,我这里只定义一个输入手机号的输入框和一个button按钮 对应的代码如下 2 ...

  6. java实现短信群发功能

    双十一刚过去,马上迎来双十二,各大公司都在想着发促销短信给客户,让他们再买一波,我们公司也不列外,这不,项目这边又来了一波,这次需要给之前的客户群发短信,发一下我们公司的最新产品信息,让他们点进来脉脉 ...

  7. Java PHP Python实现短信验证码和国际短信群发功能

    最近由于公司的业务拓展,需要给国外用户发送国际短信,像西班牙.葡萄牙.意大利这些国家都要发,还有中国的香港.澳门.台湾(港澳台)这些地区也要发,不过现在已经有许多公司提供国际短信的业务了,之前使用过云 ...

  8. android 短信注册,Android注冊短信验证码功能

    一.短信验证的效果是通过使用聚合数据的SDK实现的 ,效果例如以下: 二.依据前一段时间的博客中输了怎么注冊! 注冊之后找到个人中心找到申请一个应用就可以! 四.调用SDK 第一步:创建并配置proj ...

  9. android实现发送短信的功能

    在上次的博客中已经实现了拨打电话的功能,但是在实际中使用短信的几率也是比较大的,好多手机卡短信都是包月的,像移动校园卡每个月可以发200条短信,超出之后才付钱.但这些日子已经一去不复返了,我也毕业了, ...

最新文章

  1. AI应用落地哪家强?CSDN AI Top 30+案例评选等你来秀!
  2. leetcode算法题--对称的二叉树
  3. label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...
  4. matlab 的cat函数
  5. android adb shell 常用命令
  6. java连接redis集群
  7. SCI从入门到精髓(三)——如何写出牛文章
  8. UVA10190 Divide, But Not Quite Conquer!【等差数列】
  9. 四年级下册英语计算机房和教师办公室的图片,人教版四年级英语下册Unit 1单元知识梳理卷...
  10. (七)python3 切片
  11. 关于移动端video-player点击播放自动全屏
  12. Python操作MongoDb与Redis以及ODM
  13. Hexo | yilia主题美化
  14. Lycoris Recoil再现!Unity实现Sakana~,代码思路解析,代码开源,Unity弹簧效果
  15. 利用Django框架简单设计一个登陆页面
  16. 硬盘分几个区最好?硬盘分区和库的关系
  17. swift 快速奔跑的兔几 本节的内容是:音频与视频 第一说 AVFoundation 以及简单的iOS视频app
  18. 开篇 新手小白快速搭建微信商城
  19. ESP32--WIFI
  20. Python3.8更新笔记

热门文章

  1. vue3中自定义组件使用v-model
  2. Python帮你分析孙猴子在大闹天宫时出现了几回?
  3. a12处理器和骁龙855_远超骁龙855,最强移动处理器跑分近55万分!
  4. vs mfc 静态文本 改变字体大小
  5. ExecuteScalar 返回值
  6. jsp页面input框如何监控数据变化_jsp页面文本框监听事件,该如何解决
  7. 骨传导耳机十大品牌综合对比,对比十款骨传导耳机测评哪个牌子好
  8. 配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
  9. 〖编程初学者的自我修养 - 精炼面试篇①〗- 面试之前需要做的「长期准备工作」
  10. SqlParameter CommandType.Text CommandType.StoredProcedure;