如何将 Android 发件人的 IP 地址获取到 Chromecast 设备?
Posted
技术标签:
【中文标题】如何将 Android 发件人的 IP 地址获取到 Chromecast 设备?【英文标题】:How to get the IP address of the Android sender to a Chromecast device? 【发布时间】:2014-06-28 21:58:26 【问题描述】:我正在开发一个需要将本地数据发送到 Chromecast 设备的 android 应用程序。 Cast.CastApi.sendMessage()
方法适用于小消息(似乎最大约 100KB),但我需要传递可能有几 MB 大小的图像。
似乎最好的方法是绑定到 Android 设备上的本地端口并侦听连接,在消息中传递指向 Android 设备的 URL,然后让 Chromecast 以这种方式获取图像。
问题是我不知道要在 URL 中包含什么 IP 地址。 Android 设备可能有多个 IP 地址,并非所有 IP 地址都可以从 Chromecast 访问。我可以想到两种可能的解决方案,但不知道如何实现它们:
-
在 Android 上从当前连接到 Chromecast 的套接字中提取 本地 IP 地址。将其用作 URL 中的主机字段。
在 Chromecast 上从当前连接到 Android 的套接字中提取 remote IP 地址。从 Android 发送一个虚拟主机,并让 Chromecast 替换它提取的正确地址。
关于如何实际完成其中任何一项的任何建议?还是其他选择?
【问题讨论】:
如果您将图像分解成一批 100kB 的消息? 不太实用,原因有很多:速度慢、内存膨胀、添加状态、图像变化时出现问题等。 【参考方案1】:要让运行在 chromecast 上的接收器应用程序可以访问手机上的媒体,最简单的方法是在应用程序中运行一个小型 Web 服务器;例如,您可以使用NanoHttpd 项目。请注意,Chromecast 需要使用 http(s) 协议进行媒体传输,除非它包含在接收器本身中。添加该服务器后,您可以通过访问手机的WiFi网络接口获取您的Android设备的IP地址,例如post。
【讨论】:
我不担心服务器。出于我的目的,我可以只转储一个普通的 HTTP 响应和图像;我什至不必解析 HTTP 请求,因为只有每一个图像要发送。但是无论有没有完整的本地 HTTP 服务器,我都需要知道要在传递给 Chromecast 的 URL 中使用的 地址 - 我的问题的内容。 如果您使用的是本地网络服务器,那么完整的 url 由您的网络服务器以及您的设置方式决定,类似于 http://以上是关于如何将 Android 发件人的 IP 地址获取到 Chromecast 设备?的主要内容,如果未能解决你的问题,请参考以下文章