保鲜的UPnP不返回操作 [英] Cling UPnP not returning Actions

查看:335
本文介绍了保鲜的UPnP不返回操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用的Andr​​oid 保鲜的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是第二个。但我会如果有保鲜真的如此严重的错误非常吃惊。因此,要提供一些理论:

  1. 你是什么意思显示在保鲜的UPnP没有动作?那是一些现有的示例应用程序或code?攀附本身不提供任何GUI。可能会有在code一个错误?
  2. 你真的确认有关的设备描述符的URL(SamsungMRDesc)?它是手动到达,即通过简单的复制和;粘贴URL到Web浏览器
  3. 您所看到的,如果你复制和;粘贴SCPDURL到网络浏览器?是否有一些<作用> 下的节点<行为列表>
  4. 您是否尝试过与查询的DeviceSpy三星电视从英特尔开发工具 ?你可以看到一个其他UPnP协议栈所看到的,除了保鲜。此外,您还可以在设备节点上单击鼠标右键,以及服务节点,看到DeviceSpy查找说明。
  5. 作为最后的实例,就可以嗅出什么东西被来回传送使用Wireshark。先从设置Wireshark的IP过滤器,以您的三星电视的地址。

4理论和5显然需要连接到相同的网络电视(和你的Andr​​oid)的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:

  1. 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?
  2. 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?
  3. What you see if you copy&paste the SCPDURL into web browser? Are there some <action> nodes under <actionList>?
  4. 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.
  5. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆