Xposed Hook類android.app.NotificationManagerでContextを取得する方法

1385 ワード

最近、Xposed hook Androidアプリを使っているとき、androidをどのように取得するか、需要をしているときは少しぼんやりしています.app.NotificationManagerのContextは?私のコードは次のとおりです.
XposedHelpers.findAndHookMethod("android.app.NotificationManager", 
	lpparam.classLoader,
	"notify", 
	String.class, 
	int.class, 
	Notification.class, 
	new XC_MethodHook() {
		@Override
		protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
			//  context
			super.beforeHookedMethod(param);
	    }
	});

まず、私は一般的に次の方法でContextを取得します.
XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
                    @Override
                    protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
                        super.afterHookedMethod(param);
                        Context context = (Context) param.args[0];//      Context
                        }
                    }

ここではattachメソッドでContextを取得しますが、私の場合、notificationのパラメータにはContextがありません.では、Contextを取得するにはどうすればいいですか?ここでContext context=Android AppHelperを使います.currentApplication();Contextを取得しました.すなわち、私たちは2つの方法でContextを得ることができます.1つはhookライフサイクル関数またはパラメータがContextを持つ関数で、Contextを得ることです.もう一つはAndroidAppHelperを直接使うことです.CurrentApplication()はContextを取得します.これはXposedが最もよく使う需要の一つであるべきで、自分がXposedを使う過程でもっとよくそれを学ぶことができることを望んでいます.