TaifunWiFi 拓展:WiFi Manager WiFi管理器扩展
在无线局域网中使用的功能块。
- .aix 拓展下载:
com.puravidaapps.TaifunWiFi.aix
- demo程序下载:
开发动机
WiFi Manager扩展为App Inventor开发者提供了完整的WiFi网络管理功能,包括WiFi状态控制、网络扫描、连接管理和详细信息查询。该扩展经过多年发展,支持从基础WiFi操作到高级网络建议API的各种功能。
功能概述
WiFi Manager扩展提供以下核心功能:
- WiFi状态控制(启用/禁用WiFi)
- 网络信息查询(SSID、BSSID、IP地址等)
- 可用网络扫描
- 网络连接管理
- 信号强度检测
- 5GHz频段支持检测
- DNS服务器查询
- 位置权限管理
- 网络建议API支持
扩展截图



属性
- SuppressSuccessMessage 抑制成功消息
- 获取或设置是否抑制成功消息显示。当设置为true时,将不显示操作成功的提示消息。
方法
- GetSuppressSuccessMessage 获取抑制成功消息()
- 返回是否抑制成功消息的设置状态。
- SetSuppressSuccessMessage 设置抑制成功消息(抑制)
- 设置是否抑制成功消息显示。true为抑制,false为显示。
- LocalIP 本地IP地址()
- 返回本地IP地址。如果WiFi启用则返回WiFi IP,否则返回蜂窝网络IP。
- IsEnabled 是否启用()
- 获取当前WiFi状态:true为启用,false为禁用。
- Enable 启用WiFi()
- 启用WiFi。可以通过设置suppressSuccessMessage属性为false来隐藏成功消息。
注意:从Android 10开始,无法以编程方式启用WiFi,因此将为用户提供对话框。 - Disable 禁用WiFi()
- 禁用WiFi。可以通过设置suppressSuccessMessage属性为false来隐藏成功消息。
注意:从Android 10开始,无法以编程方式禁用WiFi,因此将为用户提供对话框。 - SSID 服务集标识符()
- 获取当前WiFi SSID(服务集标识符)。
注意:使用此方法的前提是授予位置权限并且GPS必须启用。 - BSSID 基本服务集标识符()
- 获取当前WiFi BSSID(接入点的MAC地址)。
注意:使用此方法的前提是授予位置权限并且GPS必须启用。 - AvailableSSIDs 可用网络列表()
- 获取可用SSID(服务集标识符)列表。WiFi必须启用才能使用此功能。
注意:使用此方法的前提是授予位置权限并且GPS必须启用。
重要:Android将变得越来越受限。在未来的Android版本中,AvailableSSIDs方法将停止工作。 - ConnectionInfo 连接信息()
- 获取当前连接信息。详情请参考Android WiFiInfo文档。
- Is5GHzBandSupported 支持5GHz频段()
- 检查是否支持5GHz频段。返回true或false。
- SignalStrength 信号强度()
- 获取信号强度(RSSI),范围在0到100之间。
- AccessPointIP 接入点IP()
- 获取接入点的IP地址。
- Dnsservers DNS服务器()
- 返回当前网络的DNS服务器列表(主服务器和辅助服务器)。
注意:当路由器内未配置DNS时,方法返回网关路由器的IP地址。 - ApiLevel API级别()
- 返回当前设备的Android API级别。

- ConnectSSID 连接网络(SSID,密码)
- 连接到指定的SSID(服务集标识符)。适用于Android >= 10。
使用新的点对点API来引导配置辅助设备,该API从Android 10开始可用。此API需要WRITE_SETTINGS权限。 - DisconnectSSID 断开连接()
- 断开当前WiFi连接。
- HaveSystemWritePermission 拥有系统写入权限()
- 检查应用是否拥有系统写入权限。
- IsGpsEnabled GPS是否启用()
- 检查设备GPS是否启用。
- IsLocationPermissionGranted 位置权限是否授予()
- 检查应用是否被授予位置权限。
- RequestLocationPermission 请求位置权限()
- 请求位置权限。
- AddNetworkSuggestion 添加网络建议(SSID,密码)
- 添加网络建议(Network Suggestion API)。
- RemoveNetworkSuggestion 移除网络建议(SSID)
- 移除网络建议。
- GetAllNetworkSuggestions 获取所有网络建议()
- 获取所有网络建议。
- SecurityType 安全类型()
- 获取当前连接网络的安全类型。
- NetworkAvailable 网络可用()
- 检查网络是否可用。
事件
- GotAvailableSSIDs 获取可用网络(可用网络列表,最佳网络,对应信号强度,对应BSSID列表)
- 指示已扫描到可用SSID(服务集标识符)的事件。
参数提供:- availableSSIDs:可用SSID列表
- bestSSID:信号最好的SSID
- correspondingRSSI:对应的信号强度列表
- correspondingBSSI:对应的BSSID列表
- AfterWifiNegotiation WiFi协商完成(SSID,成功)
- WiFi连接协商完成时触发。
- ErrorOccurred 错误发生(错误信息)
- 当操作发生错误时触发,替换了之前的suppressWarning属性。

使用示例
基本WiFi状态检查
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
扫描可用网络
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
连接到WiFi网络
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
获取网络详细信息
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
错误处理
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
应用场景
1. 网络管理应用
创建完整的WiFi管理工具,帮助用户查看、连接和管理WiFi网络:
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
2. 智能家居控制
自动连接到家庭WiFi网络并控制智能设备:
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
3. 网络诊断工具
检查网络连接质量和问题诊断:
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
4. 企业网络管理
企业环境下的网络连接管理和监控:
when Button1.Click() {
TaifunWiFi1.ConnectSSID("HomeNetwork", "password")
}
when TaifunWiFi1.AfterWifiNegotiation(successful) {
Label1.Text = join("连接结果:", successful)
}
技术说明
权限要求
WiFi扩展需要以下权限:
- ACCESS_WIFI_STATE: 访问WiFi状态
- CHANGE_WIFI_STATE: 修改WiFi状态
- ACCESS_FINE_LOCATION: 精确位置权限(用于网络扫描)
- ACCESS_NETWORK_STATE: 访问网络状态
- WRITE_SETTINGS: 系统设置权限(Android >= 10连接功能)
- ACCESS_COARSE_LOCATION: 粗略位置权限
Android版本兼容性
| Android版本 | 功能支持 | 注意事项 |
|---|---|---|
| < 6.0 | 完整支持 | 无特殊限制 |
| 6.0-9.0 | 基本支持 | 需要动态权限请求 |
| >= 10.0 | 受限支持 | 无法编程启用/禁用WiFi,使用网络建议API |
| >= 11.0 | 严格限制 | 网络扫描功能可能受限 |
网络扫描限制
从Android 9开始,WiFi扫描受到以下限制:
- 每个前台应用可以在2分钟内扫描4次
- 后台应用扫描次数更少
- 需要位置权限和GPS启用
网络建议API(Android >= 10)
对于Android 10及以上版本,使用Network Suggestion API:
- 不再需要系统权限即可建议网络
- 用户可以明确接受或拒绝建议
- 提供更好的用户体验和安全性
最佳实践
- 权限管理: 始终检查并请求必要的权限
- 错误处理: 实现完整的错误处理机制
- 用户反馈: 提供清晰的状态信息和用户指导
- 性能优化: 避免频繁的网络扫描操作
- 版本适配: 根据Android版本提供不同的功能
- 安全性: 妥善处理WiFi密码等敏感信息
故障排除
常见问题
Q: WiFi扫描返回空列表? A: 检查位置权限是否已授予,GPS是否启用,WiFi是否开启。
Q: 无法连接到WiFi网络? A: 确认网络名称和密码正确,检查网络是否在范围内,对于Android >= 10需要使用网络建议API。
Q: 获取SSID失败? A: 确保应用已连接到WiFi,位置权限已授予,GPS已启用。
Q: Enable/Disable方法无效? A: 从Android 10开始,无法编程控制WiFi开关,系统会显示用户对话框。
Q: 网络扫描功能不工作? A: 这可能是由于Android版本限制,新版本Android对网络扫描有严格限制。
本文档基于TaifunWiFi扩展的PuraVidaApps页面信息整理,更多信息请参考原始页面。
版权信息
本文档内容依据原作者发布页面整理翻译,版权归原作者所有。
- 原作者:Taifun(puravidaapps)
- 原始网址:https://puravidaapps.com/wifi.php
扫码添加客服咨询