gpt4 book ai didi

java - 创建自定义 WiFi 设置

转载 作者:行者123 更新时间:2023-12-01 19:31:07 25 4
gpt4 key购买 nike

我只是想知道是否可以在应用程序中制作自定义 Wifi 界面,用户可以在其中输入他的 Wifi 连接,而不是启动导致 Android Wifi 设置的 Intent 。我正在对此进行研究,但找不到有关在应用程序中进行自定义 wifi 设置的任何有用的输入。

startActivity( new Intent( Settings.ACTION_WIFI_SETTINGS ) );

这不是想要的...我想创建自己的 wifi 设置界面,用户可以在其中设置 wifi 配置文件并让手机从应用程序内连接到网络。

感谢您的任何想法和帮助

最佳答案

这曾经是可能的,但现在已在 API 级别 29 (android 10) 中弃用。从 Android 10 开始,您只能以编程方式将网络添加到建议列表中。然后用户会收到通知,但不会自动连接。因此,一旦您将 gradle 文件中的 targetsdk 设置为 29 或更高,您就无法自动为用户切换/连接到 wifi。

// This only works with Android 10 and up (targetsdk = 29 and higher):
import android.net.wifi.WifiManager
import android.net.wifi.WifiNetworkSuggestion
...
val wifiManager = getSystemService(WIFI_SERVICE) as WifiManager
val networkSuggestion = WifiNetworkSuggestion.Builder()
.setSsid("MyWifi")
.setWpa2Passphrase("123Password")
.build()
val list = arrayListOf(networkSuggestion)
wifiManager.addNetworkSuggestions(list)

A notification which is generated by the android Wi-Fi suggestion API

但是,您无法强制切换 Wi-Fi。如果用户已经连接到另一个 Wi-Fi,他可能无法连接到建议的网络。请参阅Wi-Fi suggestion API以供进一步引用。

在 API 级别 28 (android 9) 之前,这可以通过 WifiManager 实现。 .

// This code works only up until API level 28 (targetsdk = 28 and lower):
import android.net.wifi.WifiConfiguration
import android.net.wifi.WifiManager
...
val wifiManager = getSystemService(WIFI_SERVICE) as WifiManager

val wifiConfiguration = WifiConfiguration()
wifiConfiguration.SSID = "\"" + "MyWifi" + "\""
wifiConfiguration.preSharedKey = "\"" + "123Password" + "\""

// Add a wifi network to the system settings
val id = wifiManager.addNetwork(wifiConfiguration)
wifiManager.saveConfiguration()

// Connect
wifiManager.enableNetwork(id, true)

关于java - 创建自定义 WiFi 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com