保鲜的UPnP不返回操作 [英] Cling UPnP not returning Actions
问题描述
我正在使用的Android 保鲜的UPnP 框架连接的UPnP功能的设备。我成功地创造一个设备和浏览在网络中可用的设备。但在网络中的三星电视机中没有返回任何行动的框架。 在这里,我加入了服务细节为RenderingControl
<服务>
<的serviceType>金塔:架构 - 支持UPnP组织:服务:RenderingControl:1< /的serviceType>
<服务ID>金塔:支持UPnP组织:服务ID:RenderingControl< /服务ID>
< controlURL> /的UPnP /控制/ RenderingControl1< / controlURL>
<的eventSubURL> /的UPnP /事件/ RenderingControl1< /的eventSubURL>
< SCPDURL> RenderingControl1.xml< / SCPDURL>
< /服务>
这是网址获取服务描述符xml文件
> HTTP://< IP地址>:52235 / DMR / SamsungMRDesc.xml
但SCPDURL是相对的,我想知道的保鲜框架是否正在寻找
而不是
的http://< IP地址>:52235 / RenderingControl1.xml
的http://< IP地址>:52235 / DMR / RenderingControl1.xml
时它正在显示的服务保鲜的UPnP没有动作或我在做一些真正愚蠢的原因是什么?
我怎样才能正确地与这样做保鲜的UPnP ?
只是一个事先澄清:网址 * SamsungMRDesc.xml
是设备描述符,不是服务描述符的是你写的吧?
在< SCPDURL>
每UPnP的规范是相对于在该设备描述所在的URL。所以,是的,正确的绝对SCPDURL是第二个。但我会如果有保鲜真的如此严重的错误非常吃惊。因此,要提供一些理论:
- 你是什么意思显示在保鲜的UPnP没有动作?那是一些现有的示例应用程序或code?攀附本身不提供任何GUI。可能会有在code一个错误?
- 你真的确认有关的设备描述符的URL(SamsungMRDesc)?它是手动到达,即通过简单的复制和;粘贴URL到Web浏览器
- 您所看到的,如果你复制和;粘贴SCPDURL到网络浏览器?是否有一些
<作用>
下的节点<行为列表>
- 您是否尝试过与查询的DeviceSpy三星电视从英特尔开发工具 ?你可以看到一个其他UPnP协议栈所看到的,除了保鲜。此外,您还可以在设备节点上单击鼠标右键,以及服务节点,看到DeviceSpy查找说明。
- 作为最后的实例,就可以嗅出什么东西被来回传送使用Wireshark。先从设置Wireshark的IP过滤器,以您的三星电视的地址。
4理论和5显然需要连接到相同的网络电视(和你的Android)的PC。
I am using cling UPnP framework in android to connect to UPnP enabled device. I am successful in creating a device and browsing for available devices in the network. But for the samsung TV in the network the framework in not returning any actions. Here I am adding the service detail for the 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>
This is the url for fetching the service descriptor xml file
> http://<ip address>:52235/dmr/SamsungMRDesc.xml
But the SCPDURL is relative and I am wondering whether the cling framework is searching for
http://<ip address>:52235/RenderingControl1.xml
instead of
http://<ip address>:52235/dmr/RenderingControl1.xml
Is it the reason for no actions being displayed for the services in cling UPnP or am I doing something really stupid?
How can I properly do this with cling UPnP?
Just a clarification beforehand: the URL *SamsungMRDesc.xml
is a device descriptor, not a service descriptor as you've written, right?
The <SCPDURL>
per UPnP spec is "relative to the URL at which the device description is located". So yes, the correct absolute SCPDURL is the second one. But i would be highly surprised if there was really such severe bug in Cling. So to offer some theories:
- What do you mean by "no actions being displayed in Cling UPnP" ? Is that some existing example app or your code? Cling itself does not provide any GUI. Might there be a bug in that code?
- Are you absolutely sure about the device descriptor URL (SamsungMRDesc)? Is it reachable manually, i.e. by simply copy&pasting the URL into web browser?
- What you see if you copy&paste the SCPDURL into web browser? Are there some
<action>
nodes under<actionList>
? - Have you tried to query your Samsung TV with DeviceSpy from Intel Developer Tools ? You can see what an other UPnP stack sees, besides Cling. Furthermore, you can right-click on a Device node as well as Service node and see where DeviceSpy looks for the descriptions.
- As a last instance, you can sniff what's being sent back and forth with Wireshark. Start with setting Wireshark IP filter to the address of your Samsung TV.
Theories 4 and 5 obviously require a PC connected to the same network as the TV (and your Android).
这篇关于保鲜的UPnP不返回操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!