如何获取Chromecast设备的Android发送者的IP地址?

如何获取Chromecast设备的Android发送者的IP地址?,android,chromecast,Android,Chromecast,我正在开发一个Android应用程序,需要将本地数据发送到Chromecast设备。Cast.CastApi.sendMessage()方法对于小消息(看起来高达100KB)效果很好,但我需要传递大小可能为几MB的图像 似乎最好的方法是绑定到Android设备上的本地端口并监听连接,在消息中传递指向Android设备的URL,然后让Chromecast以这种方式获取图像 问题是我不知道URL中应该包含什么IP地址。Android设备可能有几个IP地址,但并非所有IP地址都可以通过Chromeca

我正在开发一个Android应用程序,需要将本地数据发送到Chromecast设备。
Cast.CastApi.sendMessage()
方法对于小消息(看起来高达100KB)效果很好,但我需要传递大小可能为几MB的图像

似乎最好的方法是绑定到Android设备上的本地端口并监听连接,在消息中传递指向Android设备的URL,然后让Chromecast以这种方式获取图像

问题是我不知道URL中应该包含什么IP地址。Android设备可能有几个IP地址,但并非所有IP地址都可以通过Chromecast访问。我可以想到两种可能的解决方案,但不知道如何实施其中一种:

  • 在Android上从当前连接到Chromecast的套接字中提取本地IP地址。将其用作URL中的主机字段
  • 在Chromecast上从当前连接到Android的套接字中提取远程IP地址。从Android发送一个虚拟主机,让Chromecast替换它提取的正确地址

  • 有没有关于如何实际完成这两项任务的建议?或者另一种选择?

    要使运行chromecast的接收器应用程序能够访问手机上的媒体,最简单的方法是在应用程序中运行一个小型web服务器;例如,您可以使用项目。请注意,Chromecast期望http(s)协议用于媒体传输,除非它包含在接收器本身中。添加该服务器后,您可以通过访问手机的WiFi网络接口来获取Android设备的ip地址,例如,请参见。

    如果您要将图像分解为一批100kB的消息?由于以下原因不太实用:速度慢、内存膨胀、添加状态、图像更改时出现问题,等等,我不担心服务器。出于我的目的,我可以只转储一个股票HTTP响应和图像;我甚至不需要解析HTTP请求,因为只有一个图像要发送。但无论是否有完整的本地HTTP服务器,我都需要知道传递给Chromecast的URL中要使用的地址——这是我问题的内容。如果您使用的是本地web服务器,那么完整的URL由您的web服务器以及您如何设置它来确定,它类似于HTTP:/:/***;ipaddress部分是我在参考文章中指出的,你要问的ip地址还有什么?获取WiFi接口的ip地址是一个好的开始。然而,这是假设通信是通过WiFi进行的。我相信这是目前唯一的办法,但谁知道未来会怎样。