我正在制作一个Xposed模块,允许用户在输入错误的图案,图钉或密码时修改锁定屏幕上显示的信息。
我正在关注此tutorial。
在深入了解GitHub上的android源代码之后,我发现了在锁定屏幕上显示消息的方法,即类onPatternChecked()
中的com.android.keyguard.KeyguardPatternView.java
。当绘制错误的模式时,该方法使用kg_wrong_pattern
字符串资源,其值为错误模式。
这是我班级的样子: -
package com.batrashubham.customlockscreenerrormessage;
import android.content.res.XResources;
import de.robv.android.xposed.IXposedHookInitPackageResources;
import de.robv.android.xposed.IXposedHookZygoteInit;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_InitPackageResources;
/**
* Created by shubham on 19/7/16.
*/
public class CustomErrorMessage implements IXposedHookInitPackageResources,IXposedHookZygoteInit {
@Override
public void initZygote(StartupParam startupParam) throws Throwable {
XResources.setSystemWideReplacement("android","bool","config_unplugTurnsOnScreen",false);
}
@Override
public void handleInitPackageResources(XC_InitPackageResources.InitPackageResourcesParam resparam) throws Throwable {
if(!resparam.packageName.equals("com.android.keyguard")){
return;
}
XposedBridge.log("I just got into your lock screen");
resparam.res.setReplacement("com.android.keyguard", "string", "kg_wrong_pattern", "Nice try.!!");
}
}
模块显示在Xposed Installer应用程序中并成功激活,但当我绘制错误的模式时,原始消息仍显示在锁定屏幕上。
我目前正在Android 6.0.1(CyanogenMod 13)上测试它。
我做错了什么?