我正在开发一个应用程序,我需要收听蓝牙连接/断开事件。
大部分时间都收到广播,但并非总是如此。
我的日志也支持此功能。
我可以在我的日志中看到,有时我连续获得2个或3个ACL_CONNECTED事件(对于同一个设备!)而不会在其间获得ACL_DISCONNECTED,反之亦然。
这是清单中的声明:
<receiver android:name=".receivers.BluetoothBroadcastReceiver" >
<intent-filter android:priority="999">
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED"/>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED"/>
</intent-filter>
</receiver>
有人熟悉这个问题吗?
注意(06/20/18):
我的大多数测试都是使用三星设备完成的。
三星拥有自己的电池优化机制,可以在这些帖子中看到:
Samsung "App optimisation" feature kills background applications after 3 days
How do I avoid that my App enters optimization on Samsung devices
似乎这个问题与这个三星的事情有某种关系。
根据我的日志,似乎不一致的广播问题,确实在3天后开始出现
谢谢!