Найти метод для подключения модуля Xposed
Я пытаюсь сделать модуль Xposed. Сначала я прочитал учебник, в котором были инструкции по работе с часами. Код похож на:
package de.robv.android.xposed.mods.tutorial;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import android.graphics.Color;
import android.widget.TextView;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class Tutorial implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.android.systemui"))
return;
findAndHookMethod("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader, "updateClock", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
TextView tv = (TextView) param.thisObject;
String text = tv.getText().toString();
tv.setText(text + " :)");
tv.setTextColor(Color.RED);
}
});
}
}
Теперь я хочу создать свой собственный модуль, в котором я должен выполнить некоторую операцию после того, как будет введена блокировка шаблона. После того, как образец введен, я хочу прочитать образец и выполнить некоторую операцию согласно образцу. Пожалуйста, помогите мне в этом отношении. Я даже не в состоянии определить метод, чтобы подключить. Я пытался найти его по адресу: http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/
Спасибо!
1 ответ
Я немного искал в источниках keyguard на Android Git, и я нашел этот метод с этим методом, который вы должны подключить. В этом методе вы получаете прямой доступ к шаблону в нужное время.
findAndHookMethod("com.android.internal.widget.LockPatternUtils", lpparam.classLoader, "checkPattern", List.class /*You need to name the attribute's data type, I'm still not sure if List.class is enough, as the type is List<LockPatternView.Cell>*/, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
List<?> pattern = param.args[0];
// Proceed…
}
});
В качестве дополнительной информации я нашел статический метод, который вы можете использовать для преобразования шаблона в строку для лучшего удобства использования: LockPatternUtils.patternToString ()
Class[] c = new Class[1];
c[0] = List.class;
XposedHelpers.callStaticMethod(XposedHelpers.findClass("com.android.internal.widget.LockPatternUtils", lpparam.classLoader), "patternToString", c, pattern);