2016-12-04 3 views
0

In meiner App möchte ich SetValue (String) von TextEdit Hook ich versuchte Code wie folgt, aber kein Glück.How to Hook SetValue (String) in Xposed Modul

public class XposedClass implements IXposedHookLoadPackage { 

    public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable { 

     String classToHook = "android.widget.EditText"; 
     String functionToHook = "setValue"; 

     if(lpparam.packageName.equals("my.com.app")) { 

      XposedBridge.log("Loaded app: " + lpparam.packageName); 

      findAndHookMethod(classToHook, lpparam.classLoader, functionToHook, String.class, 
        new XC_MethodHook() { 
       @Override 
       protected void beforeHookedMethod(MethodHookParam param) throws Throwable { 

        XposedBridge.log("hooking: " + param.args[0]); 

       } 

      }); 
     } 
    } 
} 

Wer weiß, was falsch mit Hook-Code oben ist?

Antwort

1

Es gibt keine Funktion mit folgender Definition in der Android API [0]. So

android.widget.EditText.setValue(String) 

, im Grunde sind Einhaken Sie falsche Funktion. Vielleicht möchten Sie Haken android.widget.EditText.setText(CharSequence, TextView.BufferType)

Darüber hinaus können Sie überprüfen, die Xposed Protokolle Haken Fehler in Ihrem Code kennen. NoSuchMethodException würde geworfen, wenn Sie versuchen, falsche Funktion zu haken.

[0] https://developer.android.com/reference/android/widget/EditText.html