Имя приложения, которое будет использоваться для DIAL на телевизоре Sony с операционной системой Android

Попытка обнаружения и запуска DIAL на телевизоре Sony Bravia (Android). ПРИМЕЧАНИЕ. Не пытаюсь использовать Google Cast... но пытаюсь использовать DIAL для обнаружения и запуска установленного приложения. Обнаружение UDP ПОИСК дает мне это.

HTTP/1.1 200 OK
CACHE-CONTROL: max-age=1800
DATE: Mon, 15 Aug 2016 19:09:52 GMT
EXT:
LOCATION: http: // 10.180.12.183:8008 /ssdp/device-desc.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 4185dfde-1dd2-11b2-845e-c7225b044ee1
SERVER: Linux/3.10.27, UPnP/1.0, Portable SDK for UPnP devices/1.6.18
X-User-Agent: redsonic
ST: urn:dial-multiscreen-org:service:dial:1
USN: uuid:25664941-9d79-be82-aab6-39c4cdda7052::urn:dial-multiscreen-org:service:dial:1
BOOTID.UPNP.ORG: 0
CONFIGID.UPNP.ORG: 1869286273

Получение МЕСТОПОЛОЖЕНИЯ http://10.180.12.183:8008/ssdp/device-desc.xml дает мне этот заголовок:

Application-Url: http: // 10.180.12.183:8008 /apps/
Content-Length: 1081
Content-Type: application/xml

Содержание этого ответа таково:

<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <URLBase>http: // 10.180.12.183:8008 </URLBase>
  <device>
    <deviceType>urn:dial-multiscreen-org:device:dial:1</deviceType>
    <friendlyName>MySonyTv</friendlyName>
    <manufacturer>Sony</manufacturer>
    <modelName>BRAVIA 4K 2015</modelName>
    <UDN>uuid:25664941-9d79-be82-aab6-39c4cdda7052</UDN>
    <iconList>
      <icon>
        <mimetype>image/png</mimetype>
        <width>98</width>
        <height>55</height>
        <depth>32</depth>
        <url>/setup/icon.png</url>
      </icon>
    </iconList>
    <serviceList>
      <service>
        <serviceType>urn:dial-multiscreen-org:service:dial:1</serviceType>
        <serviceId>urn:dial-multiscreen-org:serviceId:dial</serviceId>
        <controlURL>/ssdp/notfound</controlURL>
        <eventSubURL>/ssdp/notfound</eventSubURL>
        <SCPDURL>http: // www .google.com/ cast</SCPDURL>
      </service>
    </serviceList>
  </device>
</root>

В соответствии с правилами протокола DIAL для служб DIAL REST я должен ПОЛУЧИТЬ информацию о своем приложении, используя это:

http: // 10.180.12.183:8008 /apps/MyAppName

Но я получаю «404: Не найдено» и пустой текстовый ответ. Если я поставлю «YouTube» или «Netflix» в качестве суффикса вместо MyAppName, я получу осмысленный XML-ответ.

Как только я получу хороший ответ на стандартный запрос DIAL REST GET, я надеюсь выполнить DIAL REST POST для того же URL-адреса, чтобы запустить свое приложение — точно так же, как я смог сделать с другими устройствами, поддерживающими DIAL.

Мои вопросы (надеюсь, для сотрудников Sony или экспертов-разработчиков Sony, знакомых с DIAL на телевизорах Sony на базе Android. Мне не нужно общее руководство по DIAL по обнаружению/запуску на стороне клиента и знать, как написать сервер DIAL, если я решу это делать):

  1. Действительно ли телевизоры Sony на базе Android поддерживают DIAL (а не только Google Cast V2 или V3)? Если да, то какое свойство в моем приложении Android на телевизоре представляет имя приложения, которое я должен использовать в суффиксе DIAL REST?

  2. Нужна ли мне какая-то дополнительная запись в AndroidManifest.xml моего телевизионного приложения или, возможно, также дополнительный ресурс (аналогично Amazon Fire TV, требующему ресурс xml/whisperplay.xml, который содержит запись xml «dial/application/dialid», которая используется Сервер Fire DIAL для обнаружения/запуска)?

  3. Что еще вы можете рассказать мне об уникальных аспектах реализации сервера DIAL в телевизорах Sony на базе Android?

ПРИМЕЧАНИЕ. Помните... Google Cast меня не интересует - мне нужно запустить приложение, а не просто транслировать стандартное видео. Кроме того, я рад использовать собственный механизм обнаружения / запуска, который может предложить Sony ... но тогда мне нужно знать, как этот механизм работает, поэтому был бы признателен за ссылку, если это решение.


person Zebra    schedule 16.08.2016    source источник


Ответы (1)


У меня Bravia 2015 года, вот как я отформатировал свой URL:

http://192.168.1.100/DIAL/apps/com.sony.dtv.com.alexvas.dvr.pro.com.alexvas.dvr.activity.TvMainActivity

Я не знаю, зачем нужен com.sony.dtv, но остальная часть URL-адреса состоит из идентификатора приложения (в данном случае com.alexvas.dvr.pro), за которым следует действие в приложении, которое вы хотите запустить. (com.alexvas.dvr.activity.TvMainActivity)

Отправка по этому URL-адресу через порт 80 запускает мое приложение.

person miknik    schedule 04.12.2016
comment
miknik... в вашем проекте приложения, как вы установили идентификатор приложения на com.alexvas.dvr.pro? - person Zebra; 06.12.2016
comment
У меня нет проекта приложения. В приведенном выше примере я запускаю TinyCam Pro (приложение для просмотра IP-камер) на своем телевизоре, вызывая URL-адрес, когда кто-то звонит в мою дверь. - person miknik; 11.12.2016
comment
Вы можете найти идентификатор приложения для любого приложения, найдя его в Play Store, а затем просмотрев URL-адрес (либо в Интернете, либо нажав кнопку «Поделиться» в приложении Google Play). Идентификатор приложения находится в конце URL-адреса Play Store, например, Карты Google — play.google.com/store/apps/details?id=com.google.android.apps.maps. - person miknik; 11.12.2016
comment
запуск приложения у меня работает нормально, но знаете ли вы также, как получить параметры запуска со стороны телевизора Sony? - person user3333128; 18.05.2017