フック操作の後にメソッドが実行される前に私は書いています。私は、Xposedのアクティブな呼び出し方法に関するいくつかの質問を持っています
今私は自分のインターフェイスでフックメソッドをトリガーしたいと思います。
どのように私は、短いサンプルコードは、あなたがjava.lang.reflect.Method.invoke()
を呼び出す必要が素敵:)
おかげ
フック操作の後にメソッドが実行される前に私は書いています。私は、Xposedのアクティブな呼び出し方法に関するいくつかの質問を持っています
今私は自分のインターフェイスでフックメソッドをトリガーしたいと思います。
どのように私は、短いサンプルコードは、あなたがjava.lang.reflect.Method.invoke()
を呼び出す必要が素敵:)
おかげ
短い答え
だろう
フックメソッドを呼び出す必要があります 長文回答コードの他の部分から引っ掛けたメソッドを呼び出す(呼び出す)と仮定します。
まず、関数を呼び出すMemberとObjectにアクセスする必要があります。あなたのbeforeHookedMethod()またはafterHookedMethod()で
コード例 -
//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分野のものがあります。
簡単 - 関数が静的である場合は、呼び出したい関数が
静的である場合、あなたはコールバックを待つ必要はありません。 (例えばfindAndHookMethod()など)あなたがフックすると呼ばれる
注 - あなたはまだその方法にフックされている場合は、この関数を呼び出すときにも、あなたのbeforeHookedMethod()とafterHookedMethod()はまだ呼び出されます。これらを呼びたくない場合は、上記のMethod.invoke()の代わりにXposedBridge.invokeOriginalMethod()を使用してください。