我只是想知道是否有可能在应用程序中创建自定义Wifi界面,用户可以在其中输入他的Wifi连接,而无需启动导致android wifi设置的意图。我正在对此进行研究,但找不到有关在应用程序中进行自定义wifi设置的任何有用输入。
startActivity( new Intent( Settings.ACTION_WIFI_SETTINGS ) );
这是不需要的...我想创建自己的wifi设置界面,用户可以在其中设置wifi配置文件,并使手机从应用程序内连接到网络。
感谢您的任何想法和帮助
这曾经是可能的,但现在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)
但是,您不能强制使用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)