参照以下代码示例:
首先需要在AndroidManifest.xml文件中增加相应的权限声明:
然后在代码中获取Wi-Fi连接相关的服务和控制器:
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
要想连接Wi-Fi网络,需要使用以下代码:
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = "\"YOUR_NETWORK_SSID\"";
wifiConfiguration.preSharedKey = "\"YOUR_NETWORK_PASSWORD\"";
wifiManager.addNetwork(wifiConfiguration);
// 获取网络ID
List configs = wifiManager.getConfiguredNetworks();
for (WifiConfiguration config: configs) {
if (config.SSID != null && config.SSID.equals(wifiConfiguration.SSID)) {
wifiManager.disconnect();
wifiManager.enableNetwork(config.networkId, true);
wifiManager.reconnect();
break;
}
}
上述代码中,YOUR_NETWORK_SSID和YOUR_NETWORK_PASSWORD需要替换为当前Wi-Fi网络的SSID和密码。
另外,若要监听Wi-Fi连接状态变化,需要注册广播监听器,并在相应的回调中处理逻辑,例如:
BroadcastReceiver wifiScanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
// Wi-Fi扫描结果可用
} else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
// Wi-Fi网络状态变化
NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (networkInfo != null && networkInfo.isConnected()) {
// 已连接Wi-Fi网络
WifiInfo wifiInfo = intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO);
// 获取当前连接的Wi-Fi网络信息
} else {
// 网络连接断开或连接失败