添加包名称检查后,Xposed Log无法正常工作

时间:2018-03-22 18:08:11

标签: android logging xposed

所以我有一个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 个答案:

答案 0 :(得分:0)

lpparam.packageName是要挂钩的应用程序的包名称。包名称就像应用程序的唯一标识符。因此,如果您将其与com.mypackage匹配并且您看不到日志,则基本上意味着没有具有该软件包名称的应用。

尝试以下方法:

if (!lpparam.packageName.equals("com.mypackage")){
    XposedBridge.log("We are not hooking " + lpparam.packageName + "!");
    return; // Apps with different package names dont get hooks cause you return here
}

例如,假设您想要挂钩Facebook应用,那么您应该与com.facebook.katana进行比较:!lpparam.packageName.equals("com.facebook.katana")

相关问题