保鲜的UPnP不返回操作(Cling UPnP not returning Actions)

2019-07-31 12:52发布

我使用保鲜的UPnP在Android框架连接到支持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是相对的,我想知道的保鲜框架是否正在寻找

http://<ip address>:52235/RenderingControl1.xml

代替

http://<ip address>:52235/dmr/RenderingControl1.xml

难道是理由显示在保鲜的UPnP服务没有动作还是我做一些非常愚蠢的?

我怎样才能正确地做到这一点坚持的UPnP ?

Answer 1:

只是事先澄清:该URL *SamsungMRDesc.xml是一个设备描述符 ,而不是你写一个服务描述符 ,对不对?

所述<SCPDURL>每UPnP的规格为“相对于在该设备描述所在的URL”。 所以,是的,正确的绝对SCPDURL是第二个。 但我会如果有中巴真的如此严重的错误非常惊讶。 因此,要提供一些理论:

  1. 你所说的“显示没有动作的保鲜UPnP的”是什么意思? 那是一些现有的示例应用程序或代码? 固守本身不提供任何GUI。 可能会有在代码中的错误?
  2. 你是否有绝对把握的设备描述符 URL(SamsungMRDesc)? 它是可达手动,通过简单的复制和粘贴URL到Web浏览器IE浏览器?
  3. 你所看到的,如果你复制和粘贴SCPDURL到网络浏览器? 是否有一些<action>下的节点<actionList>
  4. 你试过从DeviceSpy查询您的三星电视的英特尔开发者工具 ? 你可以看到一个其他UPnP栈所看到的,除了保鲜。 此外,可以在设备节点以及业务节点上单击鼠标右键,看到DeviceSpy查找的说明。
  5. 作为最后的实例,你可以嗅出什么东西被来回传送使用Wireshark。 开始使用Wireshark IP过滤器设置你的三星电视的地址。

理论4,5显然需要连接到相同的网络电视(和Android)的PC。



文章来源: Cling UPnP not returning Actions