发送短信并存入短信库

2024-05-07 03:32
文章标签 短信 存入 发送

本文主要是介绍发送短信并存入短信库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

在使用SmsManager服务群发短信 一文中介绍过短信的发送,这里把短信存入数据库的代码补上,比较简单,直接上代码,里面有注释:

MainActivity:

package com.home.sendsms;import java.util.ArrayList;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.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private Button sendBtn;private EditText numberText;private EditText contentText;private final String SEND_ACTION = "com.home.send";private final String RECEIVE_ACTION = "com.home.receive";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initWidget();}private void initWidget() {sendBtn = (Button) findViewById(R.id.main_btn);sendBtn.setOnClickListener(this);numberText = (EditText) findViewById(R.id.main_et_number);contentText = (EditText) findViewById(R.id.main_et_content);}@Overridepublic void onClick(View v) {if (v == sendBtn) {// 获取界面数据并验证String number = numberText.getText().toString();String content = contentText.getText().toString();if (TextUtils.isEmpty(number)) {Toast.makeText(this, "号码不能为空", Toast.LENGTH_SHORT).show();return;}if (TextUtils.isEmpty(content)) {Toast.makeText(this, "短信内容不能为空", Toast.LENGTH_SHORT).show();return;}// 注册广播registerReceiver(sendReceiver, new IntentFilter(SEND_ACTION));registerReceiver(receiveReceiver, new IntentFilter(RECEIVE_ACTION));// 发送sendSMS(number, content);// 将发送的短信插入短信库ContentValues values = new ContentValues();// 发送时间values.put("date", System.currentTimeMillis());// 阅读状态:0为未读 1为已读values.put("read", 0);// 类型:1为接收 2为发送values.put("type", 2);// 接收者号码values.put("address", number);// 短信内容values.put("body", content);// 插入短信库getContentResolver().insert(Uri.parse("content://sms"), values);}}/*** 发送短信* * @param number* @param message*/private void sendSMS(String number, String message) {SmsManager sms = SmsManager.getDefault();Intent sentIntent = new Intent(SEND_ACTION);PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent,0);Intent receiveIntent = new Intent(RECEIVE_ACTION);PendingIntent receivePI = PendingIntent.getBroadcast(this, 0,receiveIntent, 0);// 如果短信内容超过70个字符则将这条短信拆成多条短信进行发送if (message.length() > 70) {ArrayList<String> msgs = sms.divideMessage(message);for (String msg : msgs) {sms.sendTextMessage(number, null, msg, sentPI, receivePI);}} else {sms.sendTextMessage(number, null, message, sentPI, receivePI);}}private BroadcastReceiver sendReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (getResultCode() == Activity.RESULT_OK) {Toast.makeText(context, "发送成功", Toast.LENGTH_SHORT).show();} else {Toast.makeText(context, "发送失败", Toast.LENGTH_SHORT).show();}}};private BroadcastReceiver receiveReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (getResultCode() == Activity.RESULT_OK) {Toast.makeText(context, "对方接收成功", Toast.LENGTH_SHORT).show();}}};@Overrideprotected void onDestroy() {unregisterReceiver(sendReceiver);unregisterReceiver(receiveReceiver);}
}

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/main_et_number"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="输入接收者号码"android:numeric="integer"android:singleLine="true" /><EditTextandroid:id="@+id/main_et_content"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="输入短信内容" /><Buttonandroid:id="@+id/main_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="发送" /></LinearLayout>

权限:

    <!-- 发送消息 --><uses-permission android:name="android.permission.SEND_SMS" /><!-- 阅读消息 --><uses-permission android:name="android.permission.READ_SMS" /><!-- 写入消息 --><uses-permission android:name="android.permission.WRITE_SMS" /><!-- 接收消息 --><uses-permission android:name="android.permission.RECEIVE_SMS" />




 

这篇关于发送短信并存入短信库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966195

相关文章

Cannot connenct to relay host smtp.163.com (php邮件发送失败)

真是无语 搞了那么久,网上全部都说是 服务器php.ini 配置的问题,全tm都是抄的,误人子弟,好在 发现 该好贴,不过 阿里云 也真是 操蛋,屏蔽了25端口也不说,好吧!可能是我 没注意到。 扯淡完毕,下面是 解决问题的正文: 织梦自带了邮件发送功能,当我们在后台配置好了smtp信息后,如果还是发送邮件失败,可以通过下面的方法来定位。 PS:关注结果的站长们可以直接看

初识安卓小程序(Android短信发送器)

首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"短信发送器" 然后在res文件夹下找到layout文件夹,找到activity_main.xml或fragment_main.xml,在里面输入或拖拽按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="

邮件正文及其附件的发送的C++实现

转载一篇邮件发送的实现,转载自http://blog.csdn.net/lishuhuakai/article/details/27852009 亲自测试,可以使用,稍加修改添加群发功能,直接上代码 stmp.h #ifndef __SMTP_H__ //避免重复包含 #define __SMTP_H__ #include <iostream> #include <list>

阿里云短信服务使用(Java)

文章目录 一、流程1.打开短信服务2.提交材料申请资质3.资质通过后,申请短信签名并设置短信模板4.右上角设置AccessKey5.充值 二、参考官方文档调用API1.引入maven依赖2.调用API补充 一、流程 1.打开短信服务 登陆注册阿里云 搜索“短信服务”,点击“免费开通” 2.提交材料申请资质 3.资质通过后,申请短信签名并设置短信模板 例如

调用钉钉API发送消息通知给个人或部门

先让公司行政将你设置为管理员: 需要拥有的权限为:工作台管理,开发者权限。 登录钉钉管理后台: https://oa.dingtalk.com 首先,在开发者账号管理中添加ip白名单 https://open-dev.dingtalk.com/ 开发者信息》开发者账号管理:本企业开发授权:编辑       然后创建应用   选择工作台》自建应用

如何在Spark的Worker节点中给RocketMq发送消息

1.背景     之前使用spark进行数据计算,需要将计算结果发送到rocketmq上去,有两种做法:第一种是将计算结果collect到Driver端,然后统一发送。第二种是直接在各个计算结果的partition(即foreachPartition函数)分片中发送。第一种存在的问题是,如果计算结果的数据量非常庞大,如上千万,就需要很大的内存来支持,同时增加了网络传输开销。如果是第二种就不

短信加密机制的设计

在现实开发应用中,我们可以对短信进行加密,这样可以提高短信信息的安全。 在Android系统中实现短信加密时,通常需要经过短信编码,短信加密,短信解密和短信解码这四个组成部分。 具体设计模式如下: 1. 在接收短信的时候,设计一个smsService类,即JDK去继承其基类Service,作为系统服务后台运行服务,并且判断是否收到短信。 2. 一旦收到短信便运行解析与重组短信的工作,在重组

使用org.apache.commons.mail发送邮件

apache的commons项目下有个email子项目,它对JavaMail API进行了封装,用起来特变方便。在开始之前,需要做以下准备: 1、JavaMail API 添加JavaMail API里的mail包到CLASSPATH里,JavaMail API下载地址:http://java.sun.com/products/javamail/downloads/index.html 2、

封装PHP用于发送GET和POST请求的公共方法

封装了ThinkPHP用于发送GET和POST请求的公共方法。这个方法可以放在你的公共函数文件中,或者创建一个独立的类来管理这些请求。 <?phpnamespace app\common\utils;use think\facade\Log;use think\exception\HttpException;class HttpRequest{/*** 发送GET请求** @param s

STM32 | 方式1:手机发送指令,开发板向手机发送温湿度;方式2:手机发送指令,开发板定时向手机发送温湿度。

​01、知识回顾 STM32 | HC-SR04 超声波测距模块 | DHT11数字温湿度传感器(第七天)STM32 | 数字温湿度传感器DHT11STM32 | HC-SR04 超声波测距模块STM32 | DHT11数字温湿度传感器实战STM32 | 超声波实战 02、作业1 1、通过手机的两方式获取温湿度. 方式1:手机发达指令,开发板向手机发送温湿度; 方式2:手机发达指令,开