我为whatsapp开发了一个xposed模块。
http://forum.xda-developers.com/xposed/modules/mod-whatsapp-extensions-add-extra-t3452784
我想添加一些功能来隐藏我们自己最后一次看到的仍然看到其他人或报告最后一次看到的假例如:1970年1月1日。
我做了以下假设:
为了做到这一点,我首先挂钩了日期和System.currentTimeInMillis方法,让whatsapp认为它是1970年1月1日。但是有效但仍然最后一次看到的完美。
假设:最后一次看到的时间值直接取自服务器
然后我查看了源代码以找到引用last_seen首选项的位置。事实证明它只在SettingsPrivacy活动的类中引用。
假设:为了隐藏我们最后一次见过并仍然看到其他人,我们需要将最后看到的偏好改为“对所有人都可见”,并在我们看到最后一次之后将其转回。
但问题是它使用onPreferenceChangeListener。我们无法直接从界面挂钩方法。
我找不到实现onPreferenceChangeListener的子类,因为代码中显示的类是合成的。 如果有人能帮我这个,那就太好了。我需要为该首选项找到哪个是preferencechangelistener。休息我会管理。
答案 0 :(得分:1)
这是一种蛮力技巧来实现,但我想你可以挂钩app ClassLoader.loadClass并为每个加载的类检查它是否实现了接口。如果是这样,请将其onPreferenceChangeListener挂钩。
答案 1 :(得分:0)
我找到了一种方法来实现它的工作。
http://forum.xda-developers.com/xposed/modules/mod-whatsapp-extensions-add-extra-t3452784
这样做的方法是挂钩一个以偏好为参数的方法。我们创建一个首选项(com.whatsapp.preference.WAprivacy首选项是精确的),然后将此首选项与上次看到的set设置为方法所需的值。我们完成了。 它到目前为止一直在努力。