You need to enable JavaScript to run this app. Android 6.0系统NsdServiceInfo解析后attributes为空问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Android 6.0系统NsdServiceInfo解析后attributes为空问题咨询

问题结论

这是Android 6.0系统NSD_SERVICE的原生缺陷,你的POC代码没有逻辑问题。

缺陷原因

Android 6.0 版本的系统NsdManager内部实现存在未修复的bug:虽然getAttributes方法在API 21就已公开,但系统NSD服务在解析DNS-SD的TXT记录时,没有将解析得到的键值对写入NsdServiceInfo的attributes字段,无论服务端TXT记录是否正常,最终返回的属性集合都是空值。该bug在Android 7.0(API 24)版本的AOSP代码中被官方修复,因此Android 7及以上版本运行你的代码都能正常拿到attributes。

适配方案

  • 方案1:替换系统原生NSD接口,使用第三方DNS-SD实现自行实现局域网服务发现逻辑,第三方实现不受系统版本缺陷影响,各版本表现一致。
  • 方案2:若业务场景不需要依赖服务属性做设备校验,可以仅在Android 6.0上使用服务名、IP、端口三个核心字段做设备识别,Android 7及以上版本仍保留attributes校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 23:15:03