验证Xposed模块自身是否被启用的最简单方法

任何一个xposed插件都必须在xposed installer 上勾选,并在插件上开启相关设置(有些是没界面的,默认开启),然后重启系统才能生效。
至于为什么,看下xposed提供的几个接口就知道了。然后,xposed也只会在开机的时候加载所应用的模块。

但用户可能因为各种原因没有启用模块,导致所有的设置都无法应用。
这个时候,就有必要提醒下用户,当然如果插件除了问题,也可以清楚的看到到底是“没有用”还是“没应用”

想了很多,本想着xposed应该提供了一个接口查询本插件的启用状态。
后来想着,还是hook自身算了,改写下提示用户未启用xp的方法。
没几行代码的。

public void handleLoadPackage(XC_LoadPackage.LoadPackageParam paramLoadPackageParam)
{
if (paramLoadPackageParam.packageName.equals("PackageName")) {
XposedHelpers.findAndHookMethod("ClassPath", paramLoadPackageParam.classLoader, "validate, new Object[] { XC_MethodReplacement.returnConstant(true) });
}
}

private boolean validate() {
return false;
}

private void a() {
if (!validate()) {
// module is not enabled
}
}