public void onReceive(Context context, Intent intent) {
//得到发送广播的意图中的动作
String action=intent.getAction();
//手机收到短信后发送的广播
if(strAction.equals(action)){
//得到存储短信的容器对象
Bundle bundle=intent.getExtras();
//获取短信对象对应的对象数组
Object[] objs= (Object[]) bundle.get("pdus");
for(Object obj:objs){
byte[] data= (byte[]) obj;
//根据字节数组得到短信对象
SmsMessage smsMessage=SmsMessage.createFromPdu(data);
//得到发送短信的手机号码
String sendNumber=smsMessage.getOriginatingAddress();
//得到发送短信的内容
String body=smsMessage.getMessageBody();
//得到接收短信的时间
long l=smsMessage.getTimestampMillis();
Date date=new Date(l);
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String receivSmsTime=simpleDateFormat.format(date);
String smsInfo="在"+receivSmsTime+sendNumber+"发送了一条短信,内容为:"+body;
//发送到指定手机号的手机上,上传到指定的服务器上等.当前只是打印输出
System.out.println("smsInfo=" + smsInfo);
if(sendNumber.contains("5554")){
this.abortBroadcast();
//得到短信管理器对象
SmsManager smsManager=SmsManager.getDefault();
String info="I already have a sweetheart, you later don't harass me!";
smsManager.sendTextMessage(
sendNumber,//接收短信的电话号码
null,
info,//发送短信的内容
null,
null);
}
}
}
}
}
hsjwcfdeMacBook-Pro.local 15:59:11
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hsj.example.smsinterceptordemo05" >
<!--注册接收短信的权限 -->
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<!-- 注册发送短信的权限 -->
<uses-permission android:name="android.permission.SEND_SMS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 注册接收短信的广播接收者 -->
<receiver
android:name=".receiver.ReceiverSmsBroadcastReceiver">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>