2016-12-04 28 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

相關問題