【问题标题】:Connecting an Android app to a wifi without internet access在没有互联网访问的情况下将 Android 应用程序连接到 wifi
【发布时间】:2020-01-24 21:55:47
【问题描述】:

我有一个可作为 IoT 设备配套应用的 expo 应用。

要将设备连接到 wifi,应用必须连接到设备的 wifi 并向其发送包含 wifi 信息的网络调用。

在 Android 9 之前,它运行良好。但是当我开始在较新的设备上进行测试时,我发现这不像以前那么顺利,就像现在如果你连接到没有互联网接入的 wifi,你会收到一条消息说“这个网络没有互联网接入。保持连接?” .用户现在必须在网络呼叫发送到设备之前理想地选择“不再询问”并选择“是”。

在用户体验方面有点糟糕,就好像用户错过了这个弹出窗口,或者关闭它,网络请求不会通过,因为 Android 会阻止所有数据传输,直到您专门选择“是”到弹出窗口。如果用户错过了弹出窗口,他们仍然可以看到“此 wifi 无法访问互联网”的通知来访问弹出窗口。

所以,问题是:有没有办法绕过这个?理想情况下,我可以事先询问用户的许可吗?除了这个问题Force Android to Use Wifi network with no internet 之外,我还没有找到任何类似的东西,但在我的情况下,手机不会返回移动数据,它只是不会在 wifi 和应用程序之间传输任何数据。虽然适用于 iOS:/

【问题讨论】:

    标签: react-native expo iot


    【解决方案1】:

    不是解决方案,但我们遇到了完全相同的问题。在 Android 9 之前,我们的应用程序能够在没有互联网的情况下连接到 WIFI 网络并通过流量。从 9 开始,我们可以在没有互联网的情况下连接到 wifi 网络,但所有流量都是通过移动数据发送的。

    当我们手动将 android 9 设备连接到没有互联网的 WIFI 网络时,我们会看到一个弹出通知:互联网可能不可用。有两种选择 - 1) 切换到移动数据或 2) 另一个网络。如果我们选择任一选项,我们将与没有互联网的 wifi 网络断开连接。如果我们什么都不做(不选择任何选项)并让弹出窗口在 10 秒后消失,我们仍然连接到没有互联网的 wifi 网络。

    当我们从应用程序中连接时,不会向用户显示任何弹出窗口,其行为就像我们选择了“切换到移动数据”选项一样。

    如果 android 团队不认为在任何情况下都需要或需要互联网,那就太好了。有时,我们想连接到没有互联网访问的网络并保持连接。

    一种可能的解决方案是禁用移动数据。虽然这可行,但似乎在程序上不允许这样做。在我们的案例中,这将要求用户每天多次在设置中启用/禁用移动数据。现在,我们的应用程序从各种非互联网 wifi 网络获取数据,然后断开与 wifi 网络的连接,以通过互联网将数据发送到云服务器。

    关于如何在最新版本的 Android 中解决的任何想法?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-05
      • 2018-07-08
      • 2016-12-30
      • 2020-08-29
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多