Android端Chromecast SDK未知error 2155:发送端会话终止但接收端仍运行
Android 会话异常终止与错误码2155说明
这个错误码是Google Play Services中Nearby Connections API的内部错误码,实际语义为**「结束会话的信令未成功送达对端,也未在超时窗口内收到对端的结束响应」**。
- 触发逻辑:你在发送端调用
endSession()后,Nearby的底层服务会向配对的接收端发送会话结束的控制信令,若10秒的超时窗口内未收到接收端返回的信令ACK,就会在发送端的onSessionEnded()回调中返回该错误码。因为这个错误码没有被纳入Google对外公开的错误码枚举,上层拿到回调时只会标记为未知错误,不会展示具体语义。 - 对应现象的匹配逻辑:你遇到的「发送端会话已停止、接收端对应会话仍在运行」的场景,刚好和该错误的触发逻辑完全匹配——本质就是发送端发出的结束信令因为通道失效没有成功送达接收端。常见的通道失效原因包括:接收端触发系统Doze省电模式、接收端关联的Nearby进程被系统低内存策略回收、双方之间的WiFi直连/蓝牙通道提前异常断开但发送端未及时感知。
- 可落地的解决方向:
- 不要完全依赖系统API的回调判断对端的会话存活状态,在业务层补充轻量的心跳保活机制,双方每隔2~3秒互发探测包,连续3次未收到响应就主动在本地清理会话资源,避免残留。
- 引导用户将使用Nearby能力的App加入系统电池优化白名单,避免后台运行时信令通道被系统强制切断。
- 会话结束逻辑增加兜底:发送端主动结束会话时,除了调用系统提供的结束API,还要在已建立的业务通道上再发送一次结束通知,覆盖信令丢包的异常场景。
内容的提问来源于stack exchange,提问作者tiagocarvalho92
相关产品推荐
相关产品推荐

