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