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

Redmi Android10下Google Nearby发文件UPGRADE_PATH_AVAILABLE报错

Redmi Android 10设备上Nearby带宽升级失败的具体原因

这个问题是设备定制系统兼容性缺陷与对应版本GMS Nearby模块缺少适配共同导致的,和应用层业务逻辑无关,具体触发逻辑如下:

  • 核心故障点出在带宽升级流程:Nearby Connections建立初始蓝牙连接后,会自动尝试将传输通道从低带宽加密蓝牙切换为高带宽WIFI热点直连,按照标准流程,需要先在旧蓝牙通道上发送BANDWIDTH_UPGRADE_NEGOTIATION.UPGRADE_PATH_AVAILABLE协商帧,确认两端状态后再平滑切换通道、关闭旧连接。日志里的Broken pipe报错,就是写协商帧时蓝牙Socket已经被强制关闭导致的。
  • 仅在Redmi Android 10上触发的根本原因:该版本MIUI修改了原生Android的蓝牙Socket回收逻辑,当系统检测到同应用建立了WIFI热点直连通道时,会无差别立即回收该应用持有的所有蓝牙Socket,没有预留待发数据传输的缓冲窗口;原生Android及其他厂商ROM都会等待旧通道待发送数据传输完成、应用主动调用关闭接口后才会回收Socket。
  • 故障链路的日志佐证:
    1. 首先出现Unexpected call to physicalConnectionEstablished while NearbyRecorder still has an active current medium警告,说明新WIFI热点通道刚完成物理连接,旧蓝牙通道还处于正常工作状态,还没走正常关闭流程
    2. 紧接着出现Failed to close write stream of BLUETOOTH EndpointChannel ... socket closed日志,说明蓝牙流不是Nearby主动关闭的,是被系统提前回收
    3. 协商帧写入失败后,两端通道状态不一致,新WIFI热点通道的心跳包最终超时,整个连接被断开,文件传输功能完全失效
  • 对应版本GMS未做适配放大了问题:日志里的GMS版本是22.18.20,该版本的Nearby模块没有加入针对Redmi Android 10这个特殊回收逻辑的兼容判断;后续更高版本的GMS专门加了小米设备适配,在这类设备上会将带宽升级的协商帧直接切到新建立的通道传输,不会再往即将被回收的蓝牙Socket写数据。

临时规避方案

  • 初始化Nearby连接时,主动配置带宽升级规则,禁用WIFI_HOTSPOT传输介质,强制走蓝牙或WIFI LAN通道传输,避开有兼容性问题的升级路径
  • 引导对应设备用户将Google Play services升级到最新正式版,新版本已经内置了该机型的兼容修复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:45:38