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短信的发送和广播接收者实现短信的监听相关推荐

  1. 打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP

    客户端,运行会遍历桌面,和 D 盘所有文件的名称,通过UDP广播的方式发送出去,服务器需要体检开启,并监听对应的端口号. import java.io.File; import java.net.Da ...

  2. 使用广播接收者获取短信及拦截电话

    清单中注册广播接收者 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:andro ...

  3. 短信猫发送GSM 和 CDMA PDU长短信

    GSM和CDMA网络制式下发送PDU长短信实例 短信内容: [这是一封长短信,支持中文.长短信在发送的过程中,需要被拆分成多条短短信发送,而每一条短短信的长度最多仅有67个中文字符.这些被拆分的短短信 ...

  4. android四大组件之Service 注册广播接收者

    广播的注册一共有两种,一种就是用清单文件注册,还有另外一种就是用代码注册,代码注册比较灵活,可以在需要的时候注册,不需要的时候解除注册 用服务注册广播首先要开启服务, 然后在服务oncreate方法里 ...

  5. Android在Service中注册动态广播接收者

    Android广播分为动态.静态广播. 广播接收器注册一共有两种形式 : 静态注册和动态注册. 两者及其接收广播的区别: 1.动态注册的广播 永远要快于 静态注册的广播,不管静态注册的优先级设置的多高 ...

  6. java短信接口发送的这三种短信,你收到过几种?

    不同的行业应用java短信接口的用途不一样,但大多数都是用于传递消息.加强服务.提高安全性,因而一般情况下java短信接口会发送通知类短信.问候类短信.营销类短信及广告类短信,具体的让我们一起来了解下 ...

  7. android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起

    最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...

  8. 安卓Android绘制一个信息填写页面,使用了三种事件监听方法

    先上效果图片: 第一种,匿名内部类 //设置提交按钮监听submitButton.setOnClickListener(new View.OnClickListener() {@Overridepub ...

  9. 【Android】从无到有:手把手一步步教你自定义RecyclerView手势监听

    转载请注明出处,原文链接:https://blog.csdn.net/u013642500/article/details/80488425 [前言] 1.关于如何构建并使用RecyclerView, ...

最新文章

  1. 从IaaS到SaaS,腾讯二十年自研技术云上集结
  2. 第三十六讲 ASP.NET中的Web服务(三)
  3. KeilKill.bat删除keil编译生成的过程文件
  4. async python两个_【Python】python中实现多进程与多线程
  5. Problem E: 零起点学算法25——判断是否直角三角形
  6. bzoj 4195: [Noi2015]程序自动分析
  7. (*长期更新)软考网络工程师学习笔记——Section 16 磁盘存储技术和网络规划设计
  8. SAP Spartacus StoreFeatureModule
  9. ASP.NET 错误
  10. 【OpenCV 例程200篇】99. 修正阿尔法均值滤波器
  11. python 指定gpu_加快Python算法的四个方法:Numba篇
  12. C# BackGroundWorker 的简单使用
  13. 自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter
  14. Google Earth Engine(GEE)计算湿度(WET)
  15. 前后端接口文档规范模板
  16. Matlab-信号处理工具箱
  17. C# NotifyIcon(通知区图标动画)
  18. Python数据字典处理Excel,并统计总数,画出饼图
  19. 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
  20. 云计算工程师面试题集锦,云计算面试题及答案

热门文章

  1. 微服务架构之「 容错隔离 」
  2. 如何正确应用推荐系统!
  3. 如何优雅地训练大型模型?
  4. 从Google Scholar看各大科技公司的科研水平
  5. 高中生都在研究神经网络,我这个老师力不从心了
  6. 只知道TF和PyTorch还不够,快来看看怎么从PyTorch转向自动微分神器JAX
  7. 深度度量学习的这十三年,难道是错付了吗?
  8. 捷报!又一名HIV感染者被治愈,干细胞移植再次立功
  9. 年底送点福利,包邮送55本!Python、大数据、人工智能任你挑!
  10. 只需 9.9 元!前 Facebook 工程师 7 天带你掌握 7 大数据结构,大厂面试必备!