Android调用系统WiFi
1.流程图
stateDiagram
[*] --> 获取WiFi管理器
获取WiFi管理器 --> 判断WiFi是否可用
判断WiFi是否可用 --> 打开WiFi开关
打开WiFi开关 --> 扫描WiFi
扫描WiFi --> 获取可用WiFi列表
获取可用WiFi列表 --> 连接指定WiFi
连接指定WiFi --> 断开WiFi连接
断开WiFi连接 --> 关闭WiFi开关
关闭WiFi开关 --> [*]
2.步骤及代码注释
2.1 获取WiFi管理器
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
- 通过
getSystemService()
方法获取系统的WiFi管理器对象。 - 使用
Context.WIFI_SERVICE
参数指定获取的是WiFi服务。
2.2 判断WiFi是否可用
if (wifiManager.isWifiEnabled()) {
// WiFi可用
} else {
// WiFi不可用
}
- 使用
isWifiEnabled()
方法判断WiFi是否已开启。 - 如果返回
true
,则WiFi可用;否则,WiFi不可用。
2.3 打开WiFi开关
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
- 使用
setWifiEnabled()
方法打开WiFi开关。 - 参数为
true
表示打开WiFi开关。
2.4 扫描WiFi
wifiManager.startScan();
- 使用
startScan()
方法开始扫描可用的WiFi。
2.5 获取可用WiFi列表
List<ScanResult> scanResults = wifiManager.getScanResults();
- 使用
getScanResults()
方法获取扫描结果列表。 - 结果为
List<ScanResult>
类型,包含了每个扫描到的WiFi的详细信息。
2.6 连接指定WiFi
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "\"" + networkSSID + "\"";
wifiConfig.preSharedKey = "\"" + networkPassword + "\"";
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
- 创建一个
WifiConfiguration
对象,并设置要连接的WiFi的SSID和密码。 - 使用
addNetwork()
方法将WiFi配置添加到系统中,并返回网络ID。 - 使用
enableNetwork()
方法启用指定的网络。 - 使用
reconnect()
方法重新连接网络。
2.7 断开WiFi连接
wifiManager.disconnect();
- 使用
disconnect()
方法断开当前连接的WiFi。
2.8 关闭WiFi开关
wifiManager.setWifiEnabled(false);
- 使用
setWifiEnabled()
方法关闭WiFi开关。 - 参数为
false
表示关闭WiFi开关。
3.状态图
stateDiagram
[*] --> WiFi可用
WiFi可用 --> 打开WiFi开关
WiFi可用 --> 扫描中
打开WiFi开关 --> WiFi可用
打开WiFi开关 --> 扫描中
扫描中 --> 扫描完成
扫描中 --> 打开WiFi开关
扫描完成 --> 获取到WiFi列表
获取到WiFi列表 --> 连接指定WiFi
连接指定WiFi --> 连接成功
连接成功 --> 断开WiFi连接
断开WiFi连接 --> 关闭WiFi开关
关闭WiFi开关 --> [*]
4.关系图
erDiagram
WIFI ||--o{ 手机
手机 ||--o{ 手机设置
手机拥有WiFi功能,手机通过手机设置来调整WiFi连接的相关设置。
5.总结
通过以上步骤和代码,我们可以实现在Android应用中调用系统的WiFi功能。首先获取WiFi管理器对象,然后判断WiFi是否可用,如果不可用则打开WiFi开关。接着扫描可用的WiFi,并获取WiFi列表。根据需要,连接指定的WiFi或断开当前连接的WiFi。最后,根据实际情况,可以选择关闭WiFi开关。
需要注意的是,为了正常使用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