Cling UPnP не возвращает действия

Я использую цепочку UPnP в Android для подключения к устройству с поддержкой UPnP. Я успешен в создании устройства и просмотра доступных устройств в сети. Но для Samsung TV в сети рамки не возвращая никаких действий. Здесь я добавляю детали обслуживания для 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>

Это URL для получения XML-файла дескриптора службы

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

Но SCPDURL является относительным, и мне интересно, ищет ли цепляющая среда

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

вместо

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

Это причина того, что сервисы не отображаются в цепочке UPnP или я делаю что-то действительно глупое?

Как я могу правильно сделать это с помощью цепляться UPnP?

1 ответ

Решение

Просто уточнение заранее: URL *SamsungMRDesc.xml дескриптор устройства, а не дескриптор службы, как вы написали, верно?

<SCPDURL> за спецификацию UPnP - "относительно URL-адреса, по которому находится описание устройства". Так что да, правильный абсолютный SCPDURL - второй. Но я был бы очень удивлен, если бы в Cling действительно была такая серьезная ошибка. Итак, чтобы предложить некоторые теории:

  1. Что вы подразумеваете под "никакие действия не отображаются в Cling UPnP"? Это какой-то пример приложения или ваш код? Сам Cling не предоставляет никакого графического интерфейса. Может ли быть ошибка в этом коде?
  2. Вы абсолютно уверены в URL дескриптора устройства (SamsungMRDesc)? Это можно сделать вручную, то есть просто скопировать и вставить URL-адрес в веб-браузер?
  3. Что вы увидите, если скопируете и вставите SCPDURL в веб-браузер? Есть ли некоторые <action> узлы под <actionList>?
  4. Вы пытались запросить ваш телевизор Samsung с DeviceSpy из Intel Developer Tools? Вы можете видеть то, что видит другой стек UPnP, кроме Cling. Кроме того, вы можете щелкнуть правой кнопкой мыши узел Device, а также узел Service и посмотреть, где DeviceSpy ищет описания.
  5. В качестве последнего примера вы можете прослушивать то, что отправляется туда и обратно с помощью Wireshark. Начните с настройки IP-фильтра Wireshark на адрес вашего телевизора Samsung.

Теории 4 и 5, очевидно, требуют, чтобы ПК был подключен к той же сети, что и телевизор (и ваш Android).

Другие вопросы по тегам