屏幕关闭时 Android 后台 BLE 通信被阻止

问题描述 投票:0回答:1

与扫描无关。我已经连接并有前台服务。

当屏幕关闭并拔掉充电器时,BLE 通信似乎会被阻止。

有没有办法保持通信活跃/允许?据我了解,BLE 通信永远不应该被操作系统阻止,即使在 Doze 模式下也是如此。

一旦我唤醒锁定屏幕,待处理的通信似乎都已通过。 日志显示,屏幕关闭时没有发生 BLE 断开连接,但它们还显示 BLE 数据仅在屏幕唤醒后才通过。显然,只有当屏幕打开时,主机才会发送此消息,因为它在插入时可以正常工作。(即主机正确发送事件)。

它是立即的,只要我关闭屏幕(并且从充电器上拔下插头),来自主机设备的发起 BLE 通信将被忽略,直到屏幕被唤醒或设备插入。

所有已知的省电/电池优化都已关闭,但尚未向用户请求打瞌睡提示,尽管如果通信立即被阻止,则不应该打瞌睡,但应用程序不会立即进入睡眠/打瞌睡模式.

我添加了在收到 BLE 数据时播放的蜂鸣声,但我只在实际收到数据后大约 60 秒后才听到它,或者在唤醒设备或插入设备时听到。有时大约是 20 秒秒随机。

我可以连接多个设备,屏幕打开的设备都可以接收到,而屏幕关闭的设备则不会。我在这里缺少什么?从什么时候开始BLE在屏幕关闭时会被阻塞?

即使我添加打瞌睡提示并防止打瞌睡限制,也会看到相同的行为。

设备: 三星 A23 - 安卓 13 Pixel 5 - Android 14

android bluetooth-lowenergy android-doze
1个回答
0
投票

感觉您的服务正在后台模式下运行。您能否确认您从服务中调用了

startForeground
函数?

© www.soinside.com 2019 - 2024. All rights reserved.