xposed 获取通知栏消息

通过xposed hook 类 android.app.NotificationManager  中的  notify 函数来获取消息通知栏的消息。

package com.example.hook_notificationmanager;

import android.app.Notification;
import android.os.Build;
import android.os.Bundle;

import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Map;
import android.app.Notification;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class HookTest implements IXposedHookLoadPackage{

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable{
        final Class clazz = XposedHelpers.findClass(
                "android.app.NotificationManager", lpparam.classLoader
        );
        XposedBridge.log("Hook 测试0");
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
            XposedHelpers.findAndHookMethod(clazz, "notify", String.class, int.class, Notification.class,
                    new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            super.afterHookedMethod(param);
                            XposedBridge.log("methodHookParam.args: " + Arrays.toString(param.args));
                            Notification a = (Notification) param.args[2];
//                            String aPackage = a.contentView.getPackage();
                            String title = "";
                            String text = "";
                            String url = "";
                            XposedBridge.log("Hook 测试");
                            if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT){
                                XposedBridge.log("Hook 测试1");
                                XposedBridge.log("tickerText1: " + a.tickerText);
                                XposedBridge.log("title1: " + a.extras.get("android.title"));
                                XposedBridge.log("text1: " + a.extras.get("android.text"));
                                XposedBridge.log("object notification: " +  a.toString());

                            }
                        }
                    });

        }

        }

}

参考连接:

   https://www.jianshu.com/p/3cbda88bb1f9

   https://www.jianshu.com/p/622737e9469f

  https://blog.youkuaiyun.com/hardworkingant/article/details/78323073   # 原理

  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值