如何在没有安装 MQTT 应用程序的设备的情况下在 android 上使用 MQTT 将消息推送到特定 IP?

Posted

技术标签:

【中文标题】如何在没有安装 MQTT 应用程序的设备的情况下在 android 上使用 MQTT 将消息推送到特定 IP?【英文标题】:How to use MQTT on android to push messages to a specific IP without the device having the MQTT app installed ? 【发布时间】:2017-07-29 16:57:36 【问题描述】:

我在 Java android Studio 中内置了一个 Wi-Fi 扫描仪发现工具(有点像 nmap),该应用能够找到连接到我家 Wi-Fi 的 IP 和 MAC 地址。

我想使用 MQTT 向网络上的所有设备发送推送消息,询问他们是否要订阅某个主题并接收有关该主题的更新。我知道可以将 MQTT 用于推送通知(如此处所述Basic Steps for Using MQTT in android),但我只能找到有关如何创建一个应用程序的说明,该应用程序一旦安装在该手机上就会向手机发送推送通知......

所以我不知道如何让我家中的设备连接到我的 Mosquitto 代理并订阅通过 MQTT 发送的消息。我想将消息推送到 Android 手机以外的设备(比如我的 FireStick),但这可能吗?

或者除非设备也安装了 MQTT 应用程序,否则这是不可能的吗?还是因为并非所有设备都有开放端口接受传入通知?

最终目标是使用 Java 构建类似 https://home-assistant.io/ 的东西。

提前致谢

【问题讨论】:

【参考方案1】:

或者,除非设备也安装了 MQTT 应用程序,否则这是不可能的吗?

如果使用“MQTT 应用程序”,我假设您的意思是您的一些代码,这些代码不仅连接到您的代理,而且订阅您想要的主题,然后对这些主题做出响应。在这种情况下,是的,这些设备需要在其上安装您的 MQTT 应用程序,前提是该特定设备可以进行此类操作。

还是因为并非所有设备都有开放端口接受传入通知?

AFAIK,MQTT 客户端不需要开放端口,这从安全角度来看是好的。

【讨论】:

以上是关于如何在没有安装 MQTT 应用程序的设备的情况下在 android 上使用 MQTT 将消息推送到特定 IP?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在不发布的情况下在真实设备上测试应用程序?

如何在不配对的情况下在远程设备中安装 J2ME .jar 文件?

如何在没有真实设备的情况下在 iOS 上测试推送通知?

在没有 Apple Developer Program 的情况下在 iOS 上安装应用程序 (Xcode 7)

有啥方法可以保存数据,即使在没有钥匙串的情况下在 ios 上重新安装应用程序?

如何在没有下载的情况下在离子应用程序中显示pdf文件