创建自定义wifi设置

问题描述 投票:0回答:1

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

startActivity( new Intent( Settings.ACTION_WIFI_SETTINGS ) );

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

感谢您的任何想法和帮助

java android wifimanager
1个回答
2
投票

这曾经是可能的,但现在API级别29(android 10)已弃用。从android 10开始,您只能以编程方式将网络添加到建议列表。然后,用户会收到通知,但不会自动连接。

// This only works with Android 10 and up:
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:
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)
© www.soinside.com 2019 - 2024. All rights reserved.