0

回复:https ://developer.sony.com/develop/audio-control-api/hardware-overview/discovery-process

你好。我有一个亚太地区索尼 STR-DN1080 AVR。我可以通过 API 控制所说的 AVR。我只是找不到使用 SSDP 支持的索尼设备。

似乎 AVR 定期通过 UDP 向网络宣传自己,但它没有使用文档中描述的格式响应任何多播请求。

ST: upnp:rootdevice当我用or替换 "ST: ...." 行时,Web API 服务甚至没有回复ST: ssdp:all。我网络上的其他设备会回复,但 Web API 服务不会。但是,内置的 UPnP/DLNA 服务会做出响应。

这是我的数据包:

String msg = "M-SEARCH * HTTP/1.1\r\n" +
    "HOST: 239.255.255.250:1900\r\n" +
    "MAN: \"ssdp:discover\"\r\n" +
    "MX: 1\r\n" +
    "ST: urn:schemas-sony-com:service:ScalarWebAPI:1\r\n" +
    "USER-AGENT: me\r\n" +
    "\r\n" ;

有什么我想念的吗?提前致谢。

4

1 回答 1

0

解决方案。无论我如何尝试,我都无法通过指定的 M-SEARCH 广播从 Sony STR-DN1080 获得所需的响应。所以相反,这就是我所做的:

  1. ST: ssdp:all\r\n在 M-SEARCH 广播中使用标签。
String msg = "M-SEARCH * HTTP/1.1\r\n" +
    "HOST: 239.255.255.250:1900\r\n" +
    "MAN: \"ssdp:discover\"\r\n" +
    "MX: 1\r\n" +
    "ST: ssdp:all\r\n" +
    "\r\n" ;
  1. 建立一组所有回复设备的 IP 地址。
  2. 搜索 Set 中的每个设备是否存在此文件:{ip address}:8008/ssdp/device-desc.xml。
  3. 扫描该 XML 文件的每一行以查找字符串“STR-DN1080”。

这不是我想要结束的地方,但它确实有效。

于 2019-01-09T02:38:53.390 回答