Android设备默认支持WiFi,可以通过自动或手动方法连接WiFi网络。
一、搜索周围的WiFi网络
如果希望连接一个WiFi网络,首先需要检测周围的WiFi网络,代码如下所示:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifiManager.startScan(); ListwifiScanList = wifiManager.getScanResults();
通过使用startScan()方法来触发WiFi管理器扫描可用网络。获取可用网络列表的方法是getScanResults(),它将返回一个列表,其中包含了发现的网络信息和属性。
二、获取已经连接的网络
可以使用getConnectionInfo()方法查找当前连接到的WiFi网络的详细信息,并查看当前网络信号强度,代码如下所示:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int signalStrength = wifiInfo.getRssi(); String ssid = wifiInfo.getSSID(); String bssid = wifiInfo.getBSSID();
信号强度是以dBm为单位的负值,数值越大,表明信号越强。
三、连接到WiFi网络
可以使用以下代码连接到特定的WiFi网络:
WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = String.format("\"%s\"", networkSSID); wifiConfig.preSharedKey = String.format("\"%s\"", networkPass); WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); int networkId = wifiManager.addNetwork(wifiConfig); wifiManager.disconnect(); wifiManager.enableNetwork(networkId, true); wifiManager.reconnect();
可以使用addNetwork()方法将WiFi网络添加到系统中,然后使用enableNetwork()方法连接到该网络。
四、断开WiFi网络连接
可以使用以下代码断开当前WiFi网络连接:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifiManager.disconnect();
五、获取WiFi连接状态
代码示例如下:
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiInfo.isConnected()) { // WiFi网络已连接 }
可以通过ConnectivityManager获取当前的网络连接状态,并使用getNetworkInfo()方法查找WiFi网络的连接状态。如果当前连接到了WiFi网络,则网络连接状态会显示为已连接。