【发布时间】:2020-06-09 07:12:56
【问题描述】:
我正在开发一个基于 Raspberry Pi 的物联网设备,该设备拥有自己的 WiFi AP(无互联网),并已成功按照this Android Developers blog post from 2016 连接到它,并将流量从我的 Android 应用程序路由到它,即使移动数据是启用(即通过Network#getSocketFactory)。 (即我没有在这个问题中报告问题:Send request over WiFi (without connection) even if Mobile data is ON (with connection) on Android M)
现在的问题是,我的 Android 10 设备(Google Pixel)会在几分钟后自动断开网络连接并切换到我的家庭 WiFi 网络(有互联网)。这是在前台应用程序,通过一个活动的 Web 套接字连接到在 Pi 上运行的服务器端应用程序。
我可以通过侦听应用程序中的网络状态变化并通过WifiManager#enableNetwork 强制重新连接到我的 IoT 网络来解决此问题,但这似乎是一个 hacky 解决方案,连接仍然是中断,导致用户体验不佳。
我的另一个想法是使用WifiManager#disableNetwork 禁用所有其他配置的 WiFi 网络,从而阻止手机连接到它们。但是文档声明不允许禁用由其他应用创建的网络。
在没有网络访问的情况下保持与物联网 WiFi 网络的连接似乎是 Google 已经(或曾经)知道的 Android 应用的合理用例,但我正在努力拼凑当前的最佳实践,以了解如何在 2020 年做到这一点。我想知道是否可以通过较新的 WiFi suggestion APIs 来实现。然而,这些听起来对应用程序开发人员来说更加严格,并且不提供任何关于实际加入的 WiFi 网络的保证。
【问题讨论】:
标签: android raspberry-pi wifi iot