一、开启Wifi
在Android系统中连接Wifi,首先需要确保手机的Wifi功能已开启:
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if (!wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(true); }
以上代码使用WifiManager类获取Wifi服务,然后检查Wifi是否开启,如果没有开启则打开Wifi功能。
二、扫描可用Wifi列表
扫描可用Wifi列表可以让用户选择需要连接的Wifi网络。使用以下代码获取可用Wifi列表:
ListscanResults = wifiManager.getScanResults();
获取后得到的ScanResult列表中包含了所有可用的Wifi网络。
三、连接Wifi
选择需要连接的Wifi网络后,使用以下代码连接Wifi:
WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = String.format("\"%s\"", wifiSSID); wifiConfig.preSharedKey = String.format("\"%s\"", wifiPassword); int networkId = wifiManager.addNetwork(wifiConfig); wifiManager.disconnect(); wifiManager.enableNetwork(networkId, true); wifiManager.reconnect();
以上代码中的ssid和password分别为需要连接的Wifi网络的名称和密码。首先使用WifiConfiguration类创建一个Wifi配置对象,然后将ssid和password设置为需要连接的Wifi网络的名称和密码。接着,使用WifiManager的addNetwork()方法添加这个配置,得到一个该Wifi网络的网络ID。然后,需要先将当前连接的Wifi网络断开,执行enableNetwork()方法连接该Wifi网络,最后使用reconnect()方法重新连接该网络。
四、断开Wifi连接
当需要断开连接时,使用以下代码即可断开当前连接的Wifi网络:
wifiManager.disconnect();
五、权限
在使用Wifi的相关功能时,需要在AndroidManifest.xml中添加如下权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
其中,ACCESS_WIFI_STATE和CHANGE_WIFI_STATE权限用于检查Wifi状态和更改Wifi状态,ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION权限用于获取Wifi列表。