如何检测Facebook Messenger是否泡泡?

时间:2014-12-24 07:10:59

标签: android facebook facebook-messenger system-alert-window

Facebook使用一种服务在Android上推送信使泡泡 - 如下所示: http://www.piwai.info/chatheads-basics/

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

我已开始调查以下选项 -

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

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

我正在寻找一个黑客,知道Facebook泡沫何时开启以及何时关闭。

2 个答案:

答案 0 :(得分:1)

通过open \ closed你的意思是聊天气泡仍然在屏幕上,聊天窗口是打开\关闭,还是泡泡是可见的还是不可见的?如果是后者:

检查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>

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


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

答案 1 :(得分:0)

恐怕你不能这样做。

要做到这一点,Facebook应用应该使用其中一个公共Android API,如Broadcasts甚至Notifications。但他们没有使用任何一种。

当用户关闭气泡时,它会在内部关闭。你无法访问它。

您可以使用名为xposed framework的内容为root用户设备访问它。