尝试进行DIAL发现并在Sony Bravia TV(Android)上启动。注意:不尝试执行Google Cast ...,而是尝试使用DIAL查找并启动已安装的应用程序。 UDP发现SEARCH给了我这个。
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 REST服务的DIAL协议规则,我应该使用以下方法获取有关我的应用程序的信息:
http: // 10.180.12.183:8008 /apps/MyAppName
但是我得到一个“ 404:未找到”和一个空文本响应。如果将“ YouTube”或“ Netflix”作为后缀而不是MyAppName,则会得到有意义的XML响应。
一旦我对标准的DIAL REST GET查询获得了良好的响应,我希望对相同的URL进行DIAL REST POST,以启动我的应用程序-就像我已经能够使用支持DIAL的其他设备一样。
我的问题(希望对Sony peronnel或熟悉基于Sony Android电视的DIAL的Sony开发专家。我不需要有关客户端发现/启动的一般DIAL教程,并且如果我决定这样做,则不知道如何编写DIAL服务器做):
索尼基于Android的电视实际上是否支持DIAL(不仅限于Google Cast V2或V3)?如果是这样,电视上Android应用程序中的哪个属性代表我应该在DIAL REST后缀中使用的应用程序名称?
我是否需要在电视应用程序的AndroidManifest.xml中添加一些其他条目,或者是否还需要其他资源(类似于Amazon Fire TV,它需要xml / whisperplay.xml资源,该资源包含xml条目“ dial / application / dialid”,用于发现/启动的Fire DIAL服务器)?
您还能告诉我有关DIAL服务器基于Sony Android电视的电视实现的独特方面的信息吗?
注意:请记住...对Google Cast不感兴趣-我需要启动一个应用程序,而不仅仅是投放标准视频。另外,很乐意使用Sony可能提供的专有发现/启动机制...但是,我将需要知道该机制的工作原理,因此,如果能解决此问题,将不胜感激。
最佳答案
我有一个2015 Bravia,这是格式化网址的方法:
http://192.168.1.100/DIAL/apps/com.sony.dtv.com.alexvas.dvr.pro.com.alexvas.dvr.activity.TvMainActivity
我不知道为什么需要com.sony.dtv,但是其余的URL由应用程序ID(在本例中为com.alexvas.dvr.pro)组成,然后由您要启动的应用程序中的活动组成(com.alexvas.dvr.activity.TvMainActivity)
在端口80上发布到该URL会启动我的应用程序。