我在钩子操作之后执行方法之前写过。
现在我想在我自己的界面中触发hook方法。
我应该如何调用hook方法
一个简短的示例代码会很好:)
由于
答案 0 :(得分:0)
简答
您需要致电java.lang.reflect.Method.invoke()
长答案
我假设您要调用("调用")您从代码的其他部分挂钩的方法。
代码示例 -
//To save the returned Member and Object
public static Method myMember;
public static Object myObject;
.
.
.
//In your hook
protected Object beforeHookedMethod(MethodHookParam methodHookParam){
//Cast to method and save for later
myMember = (Method) methodHookParam.method;
myObject = methodHookParam.thisObject;
}
.
.
.
//Later, in your interface, to call the function
myMember.invoke(myObject)
注意 - 如果需要将参数传递给函数调用,则1中的MethodHookParam对象也包含args字段中的那些。
更简单 - 如果您要调用的功能是静态的
如果该功能是静态的,您不需要等待回调。
注意 - 此外,如果您仍然使用该方法,则在调用此函数时仍会调用beforeHookedMethod()和afterHookedMethod()。如果您不希望调用它们,请使用XposedBridge.invokeOriginalMethod()代替上面的Method.invoke()。