0

我为whatsapp 开发了一个xposed 模块。

http://forum.xda-developers.com/xposed/modules/mod-whatsapp-extensions-add-extra-t3452784

我想添加功能以隐藏我们自己最后一次看到的仍然看到其他人或报告假的最后一次看到例如:1970 年 1 月 1 日。

我做了以下假设:

为此,我首先使用了 date 和 System.currentTimeInMillis 方法,让 whatsapp 认为它是 1970 年 1 月 1 日。这很有效,但最后一次看到仍然完美显示。

假设:最后一次看到的时间值直接取自服务器

然后我查看了源代码以查找引用 last_seen 首选项的位置。原来它只在 SettingsPrivacy 活动的类中引用。

假设:为了隐藏我们最后一次看到的并仍然看到其他人,我们需要将最后一次看到的偏好更改为“对所有人可见”,并在我们最后一次看到时将其关闭。

但问题是它使用了 onPreferenceChangeListener。我们不能直接从接口挂钩方法。

我找不到实现 onPreferenceChangeListener 的子类,因为代码中显示的类是合成的。请如果有人可以帮助我,那就太好了。我需要找到该偏好的preferencechangelistener。休息我会管理的。

4

2 回答 2

1

这是获得实现的一种蛮力技巧,但我想您可以挂钩应用程序ClassLoader.loadClass并为每个加载的类检查它是否实现了接口。如果是这样,请钩住它的 onPreferenceChangeListener。

于 2016-09-06T13:56:59.940 回答
0

我找到了一种方法来做到这一点及其工作。

http://forum.xda-developers.com/xposed/modules/mod-whatsapp-extensions-add-extra-t3452784

做到这一点的方法是挂钩一个将首选项作为参数的方法。我们创建一个首选项(准确地说是 com.whatsapp.preference.WAprivacy 首选项),然后将此首选项与最后一次看到的设置为所需的值一起传递给该方法。我们完成了。到目前为止它正在工作。

于 2016-09-09T05:29:34.787 回答