如何通过Android应用程序与wifi中的设备建立连接我需要永久连接退出应用程序后不会丢失

问题描述

我正在开发一个用于根设备的android应用程序。我的应用程序是系统应用程序。 在我的应用程序中,我需要所有用户输入路由器的ssid,密码,以便我需要通过wifi与路由器建立连接。

为此,我使用requestNetowrk方法。(android.net.ConnectivityManager.reqeustNetwor(NetworkRequest,NetworkCallback,Timeout))。

已连接,但是从应用程序退出后,连接丢失。 退出应用程序后,如何保持连接仍然存在。我不需要应用程序级别连接和设备级别连接。 如何实现这一目标。

以下是我在应用中使用的配置 Android 10,它是系统应用程序。

解决方法

您可以使用addNetwork(WifiConfiguration config)类中的WifiManager

此API用于Android Q之前的版本中的持久连接。 从Android Q开始不推荐使用,但设备所有者(DO),配置文件所有者(PO)和系统应用程序不推荐使用。

来自Android文档

int addNetwork(WifiConfiguration config)

此方法在API级别29中已弃用。a)有关触发与Wi-Fi网络的连接的新机制,请参见WifiNetworkSpecifier.Builder#build()。 b)有关新API的信息,请参见addNetworkSuggestions(java.util.List),removeNetworkSuggestions(java.util.List),以添加Wi-Fi网络,以便在自动连接到wifi时考虑。兼容性说明:对于面向Build.VERSION_CODES.Q或更高版本的应用程序,此API始终会失败并返回-1。

弃用豁免:设备所有者(DO),配置文件所有者(PO)和系统应用。