我编写了一个java chromecast接收器应用程序,它接受M搜索广播消息,并使用HTTP/1.1 200消息进行响应。Android应用程序也会在发送响应后调用设备- sent. app文件。但是android应用程序没有显示接收者的名字。但是Fling应用程序(https://github.com/entertailion/Fling)能够在没有任何问题的情况下发现接收方。
任何帮助都将不胜感激。
来自Chromecast android应用程序的请求
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 1
ST: urn:dial-multiscreen-org:service:dial:1来自JAVA接收机应用程序的响应
HTTP/1.1 200 OK
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=1800
EXT:
LOCATION: http://10.0.0.4:8008/ssdp/device-desc.xml
ST: urn:dial-multiscreen-org:service:dial:1
USN: uuid:{UUID}
BOOTID.UPNP.ORG: 7339
CONFIGID.UPNP.ORG: 7339托管在8008上的设备
<root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:r="urn:restful-tv-org:schemas:upnp-dd">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<URLBase>http://10.0.0.4:8008</URLBase>
<device>
<deviceType>urn:schemas-upnp-org:device:dail:1</deviceType>
<friendlyName>Lava2</friendlyName>
<manufacturer>Google Inc.</manufacturer>
<modelName>Eureka Dongle</modelName>
<UDN>uuid:{UUID}</UDN>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:dail:1</serviceType>
<serviceId>urn:upnp-org:serviceId:dail</serviceId>
<controlURL>/ssdp/notfound</controlURL>
<eventSubURL>/ssdp/notfound</eventSubURL>
<SCPDURL>/ssdp/notfound</SCPDURL>
</service>
</serviceList>
</device>
</root> 发布于 2014-07-13 16:30:28
如果您正在使用官方的Android,您需要知道现在的发现方法是基于mDNS而不是UPnP的。
发布于 2014-07-14 13:05:49
urn:schemas-upnp-org:service:dail:1设备描述中的ServiceType不太可能是正确的:不仅“拨号”中有一个错误,而且整个类型似乎是合成的:拨号不是UPnP论坛的标准。
您可能正在寻找的是您已经在搜索响应中使用的urn:dial-multiscreen-org:service:dial:1。设备类型可能并不重要,因为拨号没有定义它。
此外,您还需要在description中包含ApplicationURL header :这是SSDP之上的附加拨号要求,请参见等级库。
https://stackoverflow.com/questions/24724753
复制相似问题