我在android中使用cling UPnP框架连接到启用UPnP的设备。我成功地创建了一个设备并浏览了网络中的可用设备。但对于网络中的三星电视而言,框架并没有回归任何行动。 这里我要添加RenderingControl的服务细节
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<controlURL>/upnp/control/RenderingControl1</controlURL>
<eventSubURL>/upnp/event/RenderingControl1</eventSubURL>
<SCPDURL>RenderingControl1.xml</SCPDURL>
</service>
这是获取服务描述符xml文件的URL
> http://<ip address>:52235/dmr/SamsungMRDesc.xml
但SCPDURL是相对的,我想知道cling框架是否正在搜索
http://<ip address>:52235/RenderingControl1.xml
而不是
http://<ip address>:52235/dmr/RenderingControl1.xml
是不是因为UPnP中的服务没有显示任何操作的原因,还是我做了一些非常愚蠢的事情?
如何使用cling UPnP正确执行此操作?
答案 0 :(得分:2)
事先澄清一下:网址*SamsungMRDesc.xml
是设备描述符,而不是你写的服务描述符,对吗?
每个UPnP规范的<SCPDURL>
是“相对于设备描述所在的URL”。所以,是的,正确的绝对SCPDURL是第二个。但如果在Cling中确实存在如此严重的错误,我会非常惊讶。所以提供一些理论:
<action>
下是否有<actionList>
个节点?理论4和5显然需要将PC连接到与电视(和您的Android)相同的网络。