Android短信的发送和广播接收者实现短信的监听
Android短信的发送和广播接收者实现短信的监听 要注意Android清单中权限的设置以及广播的注册监听实现
以下就是 Android清单的XML
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.zyw.broadcastsendsms"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="15" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".SendSMS"android:label="@string/title_activity_send_sms" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity> <receiver android:name=".SMSBroadcastReceiver"><intent-filter android:priority="1000"><action android:name="android.provider.Telephony.SMS_RECEIVED"/></intent-filter></receiver></application><uses-permission android:name="android.permission.SEND_SMS"></uses-permission><!--添加权限--><uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_SMS"></uses-permission> </manifest>
发送短息的主界面mian.xml和实现Activity SendSMS.java
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:padding="10sp" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="手机号码" /><EditTextandroid:id="@+id/Number"android:numeric="integer"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请输入电话号码" /><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="短信内容" /><EditTextandroid:id="@+id/Content"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请输入短信内容"android:lines="3" /><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content" ></TextView><Buttonandroid:id="@+id/btnSend"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:paddingTop="20sp"android:text="发送短信" android:onClick="send"/></LinearLayout>
package com.zyw.broadcastsendsms;import java.util.ArrayList;import android.app.Activity; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.EditText; import android.widget.Toast;public class SendSMS extends Activity{private EditText num;private EditText content;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);num=(EditText) findViewById(R.id.Number);content=(EditText) findViewById(R.id.Content);}public void send(View view ) {String strNo=num.getText().toString();String strContent=content.getText().toString();SmsManager smsManager = SmsManager.getDefault();//如果字数超过5,需拆分成多条短信发送if (strContent.length() > 5) {ArrayList<String> msgs = smsManager.divideMessage(strContent);for (String msg : msgs) {smsManager.sendTextMessage(strNo, null, msg, null, null); }} else {smsManager.sendTextMessage(strNo, null, strContent, null, null);}num.setText("");content.setText("");Toast.makeText(SendSMS.this, "短信发送完成", Toast.LENGTH_LONG).show();} }
广播接收者实现短信的监听 SMSBroadcastReceiver.java
package com.zyw.broadcastsendsms;import java.text.SimpleDateFormat; import java.util.Date; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.widget.Toast;public class SMSBroadcastReceiver extends BroadcastReceiver {public void onReceive(Context context, Intent intent) {SmsMessage msg = null;Bundle bundle = intent.getExtras();if (bundle != null) {Object[] pdusObj = (Object[]) bundle.get("pdus");for (Object p : pdusObj) {msg= SmsMessage.createFromPdu((byte[]) p);String msgTxt =msg.getMessageBody();//得到消息的内容 Date date = new Date(msg.getTimestampMillis());//时间SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String receiveTime = format.format(date);String senderNumber = msg.getOriginatingAddress();if (msgTxt.equals("Testing!")) {Toast.makeText(context, "success!", Toast.LENGTH_LONG).show();System.out.println("success!");return;} else {Toast.makeText(context, msgTxt, Toast.LENGTH_LONG).show();System.out.println("发送人:"+senderNumber+" 短信内容:"+msgTxt+"接受时间:"+receiveTime);return;}}return;}} }
Android短信的发送和广播接收者实现短信的监听相关推荐
- 打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP
客户端,运行会遍历桌面,和 D 盘所有文件的名称,通过UDP广播的方式发送出去,服务器需要体检开启,并监听对应的端口号. import java.io.File; import java.net.Da ...
- 使用广播接收者获取短信及拦截电话
清单中注册广播接收者 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:andro ...
- 短信猫发送GSM 和 CDMA PDU长短信
GSM和CDMA网络制式下发送PDU长短信实例 短信内容: [这是一封长短信,支持中文.长短信在发送的过程中,需要被拆分成多条短短信发送,而每一条短短信的长度最多仅有67个中文字符.这些被拆分的短短信 ...
- android四大组件之Service 注册广播接收者
广播的注册一共有两种,一种就是用清单文件注册,还有另外一种就是用代码注册,代码注册比较灵活,可以在需要的时候注册,不需要的时候解除注册 用服务注册广播首先要开启服务, 然后在服务oncreate方法里 ...
- Android在Service中注册动态广播接收者
Android广播分为动态.静态广播. 广播接收器注册一共有两种形式 : 静态注册和动态注册. 两者及其接收广播的区别: 1.动态注册的广播 永远要快于 静态注册的广播,不管静态注册的优先级设置的多高 ...
- java短信接口发送的这三种短信,你收到过几种?
不同的行业应用java短信接口的用途不一样,但大多数都是用于传递消息.加强服务.提高安全性,因而一般情况下java短信接口会发送通知类短信.问候类短信.营销类短信及广告类短信,具体的让我们一起来了解下 ...
- android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起
最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...
- 安卓Android绘制一个信息填写页面,使用了三种事件监听方法
先上效果图片: 第一种,匿名内部类 //设置提交按钮监听submitButton.setOnClickListener(new View.OnClickListener() {@Overridepub ...
- 【Android】从无到有:手把手一步步教你自定义RecyclerView手势监听
转载请注明出处,原文链接:https://blog.csdn.net/u013642500/article/details/80488425 [前言] 1.关于如何构建并使用RecyclerView, ...
最新文章
- 从IaaS到SaaS,腾讯二十年自研技术云上集结
- 第三十六讲 ASP.NET中的Web服务(三)
- KeilKill.bat删除keil编译生成的过程文件
- async python两个_【Python】python中实现多进程与多线程
- Problem E: 零起点学算法25——判断是否直角三角形
- bzoj 4195: [Noi2015]程序自动分析
- (*长期更新)软考网络工程师学习笔记——Section 16 磁盘存储技术和网络规划设计
- SAP Spartacus StoreFeatureModule
- ASP.NET 错误
- 【OpenCV 例程200篇】99. 修正阿尔法均值滤波器
- python 指定gpu_加快Python算法的四个方法:Numba篇
- C# BackGroundWorker 的简单使用
- 自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter
- Google Earth Engine(GEE)计算湿度(WET)
- 前后端接口文档规范模板
- Matlab-信号处理工具箱
- C# NotifyIcon(通知区图标动画)
- Python数据字典处理Excel,并统计总数,画出饼图
- 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
- 云计算工程师面试题集锦,云计算面试题及答案