2016-12-04 25 views
0

在我的应用程序中,我想从TextEdit钩住SetValue(String)我尝试了这样的代码,但没有运气。如何钩住Xposed模块中的SetValue(字符串)

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]); 

       } 

      }); 
     } 
    } 
} 

任何人都知道上面的钩子代码有什么问题吗?

回答

1

在Android API [0]中没有以下定义的函数。

android.widget.EditText.setValue(String) 

所以,基本上你是钩错了功能。可能你想挂钩android.widget.EditText.setText(CharSequence, TextView.BufferType)

此外,你可以检查Xposed日志,以知道代码中的挂钩错误。当你尝试钩错功能时,会抛出NoSuchMethodException

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

相关问题