Android 如何调用在Xposed中作为参数传递的自定义对象的方法?
在Xposed中,我试图调用Android 如何调用在Xposed中作为参数传递的自定义对象的方法?,android,xposed,Android,Xposed,在Xposed中,我试图调用AppCustomClass 对象作为钩子方法中的参数传递 protected void myMethod(XC_LoadPackage.LoadPackageParam loadPackageParam) { final Class<?> appCustomClass = XposedHelpers.findClass("com.app.customClass", loadPackageParam.classLoader); findA
AppCustomClass
对象作为钩子方法中的参数传递
protected void myMethod(XC_LoadPackage.LoadPackageParam loadPackageParam) {
final Class<?> appCustomClass = XposedHelpers.findClass("com.app.customClass", loadPackageParam.classLoader);
findAndHookMethod("com.app.aClass", loadPackageParam.classLoader, "aMethod", appCustomClass, new XC_MethodHook() {
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
//How to call param.args[0].getResult()
}
}
protectedvoid myMethod(XC_LoadPackage.LoadPackageParam LoadPackageParam){
最终类appCustomClass=XposedHelpers.findClass(“com.app.customClass”,loadPackageParam.classLoader);
findAndHookMethod(“com.app.aClass”、loadPackageParam.classLoader、“aMethod”、appCustomClass、新的XC_MethodHook(){
protected void beforeHookedMethod(MethodHookParam参数)抛出可丢弃的{
//如何调用param.args[0].getResult()
}
}
您可以使用XposedHelpers.callMethod
它有两种变体
callMethod(Object obj, String methodName, Class[]<?> parameterTypes, Object... args)
所以你可以
XposedHelpers.callMethod(param.args[0],"getResult");
如果需要参数,请执行以下操作:
XposedHelpers.callMethod(param.args[0],"getResult",arg1,arg2,arg3);
注意:该方法由findMethodBestMatch解析。此(“callMethod”)方法引发的异常是XposedHelpers.InvocationTargetError,它给出了被调用方法引发的异常(如果有)
进一步阅读:
XposedHelpers.callMethod(param.args[0],"getResult",arg1,arg2,arg3);