Android 通过 WiFi 以编程方式连接到设备

Android programmatically connect to device via WiFi

我的应用程序需要通过 WiFi 连接到外部设备(相机)(该设备是本地网络接入点)。当我通过 Android 设置连接到设备的 WiFi 时,一切正常,但我有一个要求,即用户应该能够直接从应用程序连接到设备。

我知道有一个选项可以通过 WifiManager.addNetwork 连接到特定网络,但是 1) 它并不总是将我连接到我添加的网络 2) 这种方法已被弃用,并且在我的应用程序运行时将停止工作目标 API 29(很快就会发生)。

我知道已弃用 addNetwork 的建议解决方案是 suggestion API,但它仅适用于 Android 10 及更高版本(我的应用程序支持 API 21 ).

是否有任何其他稳定的选项可以从 API 21 提供的应用程序连接到 WiFi 网络(没有互联网访问权限)并且在我定位 API 时可以使用29?


编辑: 好的,现在我发现 Network Request API for peer-to-peer connection 更适合我的用例,但仍然 - 它仅适用于 Android 10 +。

在处理这个案例几个月后,我现在知道:

  1. Android 文档关于旧连接 API 在您定位 Android 10 时不起作用的说法并不正确。它仍然适用于 Android < 10 的设备。所以如果你的目标是 API 29 及以上,你必须为 Andoid <10 和 >=10...
  2. 编写两个单独的逻辑
  3. 在我看来,新连接 API 很糟糕。我用的是这个new peer-to-peerAPI,连接的时间比较长,系统弹窗一直是英文,有一些连接(比如在使用流,重新连接,或者视频流方面)从应用程序连接时与从设置连接时的问题。

似乎 Google 给出了一个不太稳定的新解决方案(一些问题仅在 Android 11 中修复)并迫使我们使用它。不是很高兴,但你能做什么...