如何将 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:// :/***; ipaddress 部分是我在引用的帖子中指出的,您要问的 ip 地址还有什么? 获取WiFi接口的IP地址是一个好的开始。 但是,这是假设通信是通过 WiFi 进行的。我相信这是目前唯一的方法,但谁知道未来会怎样。

以上是关于如何将 Android 发件人的 IP 地址获取到 Chromecast 设备?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 uWS 访问 HTTP 请求的 IP 地址?

在 Azure 门户中上传 Blob 时如何获取发件人 IP

怎样追踪电子邮件中发件人的IP地址?有人知道吗?

android获取手机真实时间与时区,IP地址

有没有办法检索发件人的 IP 地址?

如何通过邮件找到发件人的IP地址.