我在android中使用cling UPnP框架来连接到启用UPnP的设备。我成功地创建了设备并浏览了网络中的可用设备。但是对于网络中的三星电视来说,这个框架不会返回任何行动。 这里我加入了服务细节为RenderingControlCling UPnP不返回操作
<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文件
> http://<ip address>:52235/dmr/SamsungMRDesc.xml
的URL但SCPDURL是相对的,我想知道的保鲜框架是否是搜索
http://<ip address>:52235/RenderingControl1.xml
代替
http://<ip address>:52235/dmr/RenderingControl1.xml
是它之所以被显示在保鲜的UPnP服务没有动作还是我做一些非常愚蠢的?
我该如何正确地做到这一点cling UPnP?
感谢您的回复。为了您的观点1:我正在使用通过粘贴提供的示例代码来发现网络中的所有UPnP服务。当我调试时,如果我在调试器控制台中移动到已识别的Device对象内,则不会显示任何操作。它显示一个空的列表。 – Zach
第2点:是的,我可以在浏览器中看到设备描述符URL。对于SCPDURL,这不起作用http://:52235/RenderingControl1.xml,但它可以在浏览器http:// :52235/dmr/RenderingControl1.xml中工作,我可以看到actionList和其中的操作。 –
Zach
我刚发现Cling有一个名为[Workbench]的独立应用程序(http://4thline.org/projects/cling/workbench/),它与DeviceSpy类似。所以用这个Workbench查询你的三星电视,并看看服务和行动是否存在。如果是这样,你的代码有问题,因为Cling显然是正确的。 –