Android收发短信
发送短信:
首先在清单文件上, 加上发送短信的权限
<uses-permission android:name="android.permission.SEND_SMS"/>
发送短信的核心代码
public void sendMessageClick(View view){//获取短信管理器SmsManager smsManager = SmsManager.getDefault();String message = "3";//将短信拆分ArrayList<String> list = smsManager.divideMessage(message);for (int i = 0; i < list.size(); i++) {smsManager.sendTextMessage("10086", null, list.get(i), null, null);}Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT).show();}
接收短信
对于接收短信, 我有点苦恼, 因为我想让我收到的信息可以在Activity中显示, 后来想到了个法子, 可以使用观察设计模式, 还不是很懂的哥们可以去我的另个一个博客中查看http://blog.csdn.net/u013144863/article/details/51489025
SMSReceiver.java
package com.lulu.lsms;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;public class SMSReceiver extends BroadcastReceiver {private IBinderSMSReciver iBinderSMSReciver;public SMSReceiver() {}@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("来短信了...");Bundle bundle = intent.getExtras();if (bundle != null) {Object[] objs = (Object[]) bundle.get("pdus");SmsMessage[] smsMessages = new SmsMessage[objs.length];StringBuffer sb = new StringBuffer();String content = null;for (int i = 0; i < objs.length; i++) {smsMessages[i] = SmsMessage.createFromPdu((byte[])objs[i]);//获取发送的号码String number = smsMessages[i].getDisplayOriginatingAddress();//获取发送内容content = smsMessages[i].getDisplayMessageBody();sb.append(content);}System.out.println(sb.toString());iBinderSMSReciver.setUI(sb.toString());}}//观察者设计模式interface IBinderSMSReciver{public void setUI(String content);}//做个监听器public void setIBinderSMSReciverListene(IBinderSMSReciver iBinderSMSReciver){this.iBinderSMSReciver = iBinderSMSReciver;}}
别忘了清单文件, 加上下面几句
<uses-permission android:name="android.permission.RECEIVE_SMS" /><receiver
android:name=".SMSReceiver"android:enabled="true"android:exported="true"></receiver>
xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical"tools:context="com.lulu.lsms.MainActivity"><TextView
android:id="@+id/tv_sms_content"android:text="短信内容"android:textSize="20sp"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>
MainActivity.java文件
package com.lulu.lsms;import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;import java.util.ArrayList;public class MainActivity extends AppCompatActivity implements SMSReceiver.IBinderSMSReciver{public TextView tv_sms_content;private SMSReceiver smsReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_sms_content = (TextView) findViewById(R.id.tv_sms_content);smsReceiver = new SMSReceiver();IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");registerReceiver(smsReceiver, intentFilter);smsReceiver.setIBinderSMSReciverListene(this);}@Overridepublic void setUI(String content) {if(content != null){tv_sms_content.setText(content);}}
}
对于接收短信, 鄙人之前使用的小米手机, 由于小米手机的”良心品牌” , 使得广播接收器接收不到..后来换成了其他手机的品牌做了测试是可以的!!!
Android收发短信相关推荐
- Android 接收和收发短信
收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这项功能,而Android作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个Android手机都会内置一个短信应用程 ...
- Android开发:如何实现收发短信
1.收发短信代码如下: public class MsmUtils extends BroadcastReceiver {/*** 发送 MSM* @param activity* @param ta ...
- Android学习——收发短信
Android学习--收发短信 1.短信基本API介绍 使用Android API类库可以自己实现收发短信的功能: 信息的发送,对mms应用程序来讲主要是在信息数据库中创建并维护一条信息记录,真正的发 ...
- android接听ios电话,教程】教你用电脑连接 iPhone 、 Android ,在电脑上接打电话、收发短信。...
原标题:教程]教你用电脑连接 iPhone . Android ,在电脑上接打电话.收发短信. 你有「手机依赖症」吗?相信大家对自己的手机都是机不离手,眼不离机吧~那么在办公或者学习的时间里,怎么不接 ...
- 用电脑发短信_重磅!一个软件实现电脑上接打手机电话、收发短信、传文件、屏幕镜像!...
点击箭头处"蓝色字",关注我们哦!! Dell Mobile Connect 本身是一款专门为 Dell 指定设备提供的专门为计算机与 iOS 或者 Android 智能手机之间进 ...
- Android接收短信和发送短信
一.布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- Android版短信 筛选/批量删除 程序(支持Android 2.3~4.4)
这是一个短信筛选/批量删除的工具类程序. 首先上图: 1.展示全部系统短信. 2.新建筛选器(支持按号码筛选和按内容筛选) 3.筛选,批量删除. 主要代码: 1.获取系统全部短信 [java] vie ...
- Android:短信 筛选/批量删除 程序(支持Android 2.3~4.4)
这是一个短信筛选/批量删除的工具类程序. 首先上图: 1.展示全部系统短信. 2.新建筛选器(支持按号码筛选和按内容筛选) 3.筛选,批量删除. 主要代码: 1.获取系统全部短信 //获取系统全部短信 ...
- Android 群发短信的实现
版权声明:本文为博主原创文章,未经博主允许不得转载. SmsManager是Android提供的一个服务,SmsManager提供了一系列sendXxxMessage()方法用于发送短信,不过短信通常 ...
最新文章
- 学习linux要会mysql吗_linux 学习 mysql安装到连接
- 华为云计算FusionCompute环境部署实验之使用批量部署工具安装
- 独家 | 滴滴的无人车野心
- RPC框架的实现原理是什么?-开课吧
- 尼尔森十大可用性原则
- 使用MacClean在Mac上释放磁盘空间的教程
- 基于snowflake的序列号生成器
- 如何使用数据库保存文件
- 毕业设计 大学生心理健康管理平台
- JAVA:实现求Median中位数算法(附完整源码)
- win7笔记本电脑做wifi热点
- 根据NSDate得到农历的年份(包括生肖) 、月、日。
- PCL点云处理之三维向量夹角计算(四十九)
- 华为鸿蒙系统怎么退出,鸿蒙系统准备就绪,华为将退出安卓联盟,进度能赶超安卓吗?...
- re模块(正则表达式)
- itunes更新系统显示网络连接到服务器,iTunes网络连接被重设怎么办
- python自动发邮件报554错误_python3 使用smtplib发送邮件错误554
- UI设计规范技巧——切图格式
- Linux 创建文件夹快捷方式 In -s
- 女人和男人之间的经典对白!
热门文章
- 12306官方APP,高逼格的设计,分分钟钟逼死设计师
- 词向量 其实就是 语义映射矩阵
- 数据结构与算法题目集(中文) - 7-32 哥尼斯堡的“七桥问题”(25 分)
- IPO开闸 刺激资金流向创投
- VMware16安装Ubuntu22.04.1详细教程
- MPP(大规模并行处理)详解
- 2018年中级职称计算机考试成绩,2018年中级会计职称全部采用无纸化考试方式 计算机作答!...
- 【idea创建doc文件和报错的解决方法】
- Linux圈子里的“鲁大师“dmidecode-尚文网络xUP楠哥
- 中国牙科填料市场调研及投资前景方向预测报告2022-2028年