【问题标题】:Cling UPnP not returning Actions坚持 UPnP 不返回操作
【发布时间】:2012-09-12 15:55:07
【问题描述】:

我在 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是相对的,我想知道紧贴框架是否正在搜索

http://&lt;ip address&gt;:52235/RenderingControl1.xml

而不是

http://&lt;ip address&gt;:52235/dmr/RenderingControl1.xml

是因为坚持 UPnP 的服务没有显示任何操作,还是我在做一些非常愚蠢的事情?

如何使用cling UPnP 正确执行此操作?

【问题讨论】:

    标签: java android upnp


    【解决方案1】:

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

    每个 UPnP 规范的 &lt;SCPDURL&gt; 是“相对于设备描述所在的 URL”。所以是的,正确的绝对 SCPDURL 是第二个。但如果 Cling 中真的存在如此严重的错误,我会感到非常惊讶。所以提供一些理论:

    1. “Cling UPnP 中不显示任何操作”是什么意思?那是一些现有的示例应用程序还是您的代码? Cling 本身不提供任何 GUI。该代码中可能存在错误吗?
    2. 您确定设备描述符 URL (SamsungMRDesc) 吗?是否可以手动访问,即只需将 URL 复制并粘贴到网络浏览器中?
    3. 如果您将 SCPDURL 复制并粘贴到 Web 浏览器中,您会看到什么? &lt;actionList&gt;下是否有一些&lt;action&gt;节点?
    4. 您是否尝试使用来自Intel Developer Tools 的DeviceSpy 查询您的三星电视?除了 Cling 之外,您还可以看到其他 UPnP 堆栈看到的内容。此外,您可以右键单击设备节点和服务节点,然后查看 DeviceSpy 查找描述的位置。
    5. 作为最后一个实例,您可以使用 Wireshark 嗅探来回发送的内容。首先将 Wireshark IP 过滤器设置为三星电视的地址。

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

    【讨论】:

    • 感谢您的回复。对于您的第 1 点:我正在使用 cling 提供的示例代码来发现网络中的所有 UPnP 服务。当我调试时,如果我在调试器控制台中移动到识别的设备对象内,则不会显示任何操作。它显示一个空列表。
    • 第 2 点:是的,我可以在浏览器中看到设备描述符 URL。对于 SCPDURL,这不起作用 http://:52235/RenderingControl1.xml 但这在浏览器 http://:52235/dmr/RenderingControl1.xml 中有效,我可以在里面看到 actionList 和操作它。
    • 我刚刚发现 Cling 有一个名为 Workbench 的独立应用程序,它类似于 DeviceSpy。因此,使用此 Workbench 查询您的三星电视并查看服务和操作是否存在。如果是这样,您的代码就有问题,因为 Cling 显然做了正确的事情。
    • 我发现了问题。在 Cling 找到设备后不久,我就在它完全解决之前检查了调试器。这就是问题所在。谢谢你的帮助。英特尔开发者工具真的很酷。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    相关资源
    最近更新 更多