我有一个Xposed模块的类,它是我在Xposed module tutorial教程之后写的。教程中的第一个代码片段工作得很好:
public class MyClass implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Loaded app: " + lpparam.packageName);
}
}
日志会为在设备上打开的每个应用程序打印。但是,当继续下一个示例时,该示例显示如何仅选择您感兴趣的软件包
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.mypackage"))
return;
XposedBridge.log("we are in mypackage!");}
日志中没有任何内容被打印出来。所以我甚至试着保留第一个例子中的日志,以防我的包出现问题,代码看起来像这样:
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Loaded app: " + lpparam.packageName);
if (!lpparam.packageName.equals("com.mypackage"))
return;
XposedBridge.log("we are in mypackage!");}
但是没有打印任何包。在完全删除if
之后,日志再次开始显示,所以似乎添加该检查是问题所在。
任何帮助将不胜感激,谢谢!
1条答案
按热度按时间oprakyz71#
lpparam.packageName
是被挂接的应用程序的包名,包名就像是应用程序的唯一标识符,所以如果你把它和com.mypackage
进行匹配,并且你没有看到日志,这基本上意味着没有应用程序使用这个包名。请尝试以下操作:
例如,假设你想挂钩Facebook应用,那么你应该与
com.facebook.katana
进行比较:!lpparam.packageName.equals("com.facebook.katana")