Android WIFI控制
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.kongqw:AndroidWiFiManager:1.1.1'
}
初始化
// WIFI管理器
mWiFiManager = new WiFiManager(getApplicationContext());
打开WIFI
mWiFiManager.openWiFi();
关闭WIFI
mWiFiManager.closeWiFi();
添加WIFI开关状态的监听
mWiFiManager.setOnWifiEnabledListener(this);
回调
/**
* WIFI开关状态的回调
*
* @param enabled true 打开 false 关闭
*/
@Override
public void onWifiEnabled(boolean enabled) {
// TODO
}
移除WIFI开关状态的监听
mWiFiManager.removeOnWifiEnabledListener();
获取WIFI列表
List<ScanResult> scanResults = mWiFiManager.getScanResults();
获取WIFI加密方式
mWiFiManager.getSecurityMode(scanResult)
注意:Android 6.0需要动态获取 Manifest.permission.ACCESS_FINE_LOCATION 或 Manifest.permission.ACCESS_COARSE_LOCATION 后,才能正常获取到WIFI列表。
添加获取WIFI列表的监听
mWiFiManager.setOnWifiScanResultsListener(this);
回调
/**
* WIFI列表刷新后的回调
*
* @param scanResults 扫描结果
*/
@Override
public void onScanResults(List<ScanResult> scanResults) {
// TODO
}
mWiFiManager.getScanResults(); 是返回当前的WIFI列表,回调返回的是扫描更新以后新的WIFI列表。
移除获取WIFI列表的监听
mWiFiManager.removeOnWifiScanResultsListener();
连接到开放网络
mWiFiManager.connectOpenNetwork(scanResult.SSID);
连接到WPA/WPA2网络
mWiFiManager.connectWPA2Network(scanResult.SSID, password);
连接到WEP网络
mWiFiManager.connectWEPNetwork(scanResult.SSID, password);
添加连接WIFI的监听
mWiFiManager.setOnWifiConnectListener(this);
回调
/**
* WIFI连接的Log得回调
*
* @param log log
*/
@Override
public void onWiFiConnectLog(String log) {
Log.i(TAG, "onWiFiConnectLog: " + log);
// TODO
}
/**
* WIFI连接成功的回调
*
* @param SSID 热点名
*/
@Override
public void onWiFiConnectSuccess(String SSID) {
Log.i(TAG, "onWiFiConnectSuccess: [ " + SSID + " ] 连接成功");
// TODO
}
/**
* WIFI连接失败的回调
*
* @param SSID 热点名
*/
@Override
public void onWiFiConnectFailure(String SSID) {
Log.i(TAG, "onWiFiConnectFailure: [ " + SSID + " ] 连接失败");
// TODO
}
移除连接WIFI的监听
mWiFiManager.removeOnWifiConnectListener();
断开网络连接
mWiFiManager.disconnectWifi(connectionInfo.getNetworkId());
删除网络配置
只能删除自己创建的配置,其他应用生成的配置需要Root权限才可以删除。
mWiFiManager.deleteConfig(wifiConfiguration.networkId);