2

Facebook 使用服务来推动 android 上的 Messenger 泡泡 - 如下所示: http ://www.piwai.info/chatheads-basics/

我想检测气泡何时打开/关闭

我已经开始研究以下选项 -

  • 听(通过拉动)正在运行的服务 - 我发现当显示信使时有 4 个服务,当它被杀死时有 2 个。我想知道信使泡泡何时关闭,所以它对我没有帮助。

  • 收听通知——我知道它何时被完全删除(当用户将它拖到“X”区域时)——也没有帮助。

我正在寻找一种技巧,以了解 Facebook 泡沫何时打开以及何时关闭。

4

2 回答 2

1

打开\关闭是指聊天气泡保留在屏幕上并且聊天窗口打开\关闭,还是气泡可见或不可见?如果是后者:

检查AndroidManifest.xml我们可以看到以下内容:

<receiver android:name="com.facebook.orca.chatheads.service.ChatHeadsServiceBroadcastReceiver"
          android:permission="com.facebook.permission.prod.FB_APP_COMMUNICATION">
    <intent-filter android:priority="499">
        <action android:name="com.facebook.orca.chatheads.ACTION_SHOW_CHATHEADS"/>
        <action android:name="com.facebook.orca.chatheads.ACTION_HIDE_CHATHEADS"/>
        <action android:name="com.facebook.orca.chatheads.ACTION_SET_CHATHEADS_POLICY"/>
    </intent-filter>
</receiver>

您可能会尝试在您自己的服务中拦截这些广播,并以某种方式跟踪气泡的打开/关闭。


(披露:我自己从来没有尝试过这样的事情,如果这个建议被证明不切实际,我很乐意修改\删除这个答案)

于 2015-02-05T23:36:06.840 回答
0

恐怕你不能那样做。

要做到这一点,Facebook 应用程序应该使用公共 Android API 之一,Broadcasts例如Notifications. 但他们没有使用其中任何一个。

当用户关闭气泡时,它只是在内部关闭。您无法访问它。

您可以使用称为xposed framework根设备的东西来访问它。

于 2014-12-24T08:04:33.630 回答