You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android屏幕熄灭状态下的服务发现可行方案求解

无UDP广播支持下的局域网设备发现方案咨询

背景

我的Android应用可将设备用作远程传感器,通过本地WiFi网络向同一局域网内的PC端应用传输传感器数据。PC端支持接入多台设备,当前采用UDP广播实现设备发现功能。

熄屏状态下UDP消息被阻断的问题

屏幕熄灭后,设备无法接收UDP数据包,直接导致设备发现功能失效。我已测试过多种常见的临时解决方案,但均无法稳定解决问题:

  • Partial Wake Lock
  • Wifi Lock
  • 熄屏时关闭并重新开启Wi-Fi
  • 熄屏时重新绑定UDP Socket
  • 调整上述操作的执行时机

仅UDP设备发现功能受此问题影响,用于数据通信的TCP连接完全正常:熄屏后TCP数据包仍可正常收发,甚至可以手动输入设备IP完成连接。我已通过Wireshark在多台设备上验证了这一现象,因此可以排除电池优化、休眠/Doze模式、权限配置等因素,问题根源是设备存在无法可靠禁用的UDP数据包过滤机制。

约束条件下的服务发现方案诉求

现有约束条件:

  • 无互联网连接
  • 必须在屏幕熄灭状态下正常工作
  • UDP数据包被阻断

目前多数服务发现协议要么基于UDP,要么依赖中央服务器,请问是否存在符合上述约束的设备发现解决方案?

相关参考信息

关于UDP熄屏失效问题的相关讨论:

  • Android平台官方讨论组中关于该现象的技术话题
  • Stack Overflow上“部分设备熄屏时无法接收UDP广播”的提问
  • Stack Overflow上“使用SSDP无法正常接收UDP数据包”的提问
  • Stack Overflow上“Android休眠后无UDP广播数据包(未进入休眠模式)”的提问

内容的提问来源于stack exchange,提问作者Crigges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:07:37