TaifunWiFi 拓展:手机WiFi连接管理
在无线局域网中使用的功能块。
- .aix 拓展下载:
com.puravidaapps.TaifunWiFi.aix
- demo程序下载:
App截图:

测试代码块:

所需权限
Android系统需要以下权限:
android.permission.ACCESS_WIFI_STATE- 访问WiFi状态android.permission.CHANGE_WIFI_STATE- 修改WiFi状态android.permission.ACCESS_NETWORK_STATE- 访问网络状态android.permission.ACCESS_FINE_LOCATION- 精确位置权限android.permission.WRITE_SETTINGS- 系统设置权限
注意: 从Android 10开始,某些WiFi操作受到限制,需要用户手动授权。
属性
- 抑制成功消息
- 设置是否抑制操作成功时的提示消息。true为抑制,false为显示。
方法
- 本地IP地址()
- 返回设备的本地IP地址。如果WiFi启用则返回WiFi IP,否则返回蜂窝网络IP。
- WiFi是否启用()
- 获取当前WiFi状态,返回true(启用)或false(禁用)。
- 启用WiFi()
- 启用WiFi功能。
注意: 从Android 10开始,无法以编程方式启用WiFi,系统会显示用户对话框。
- 禁用WiFi()
- 禁用WiFi功能。
注意: 从Android 10开始,无法以编程方式禁用WiFi,系统会显示用户对话框。
- 获取SSID()
- 获取当前连接的WiFi网络名称(服务集标识符)。
注意: 需要位置权限和GPS启用才能使用此方法。必须构建应用才能测试。
- 获取BSSID()
- 获取当前WiFi接入点的MAC地址。
注意: 需要位置权限和GPS启用才能使用此方法。必须构建应用才能测试。
- 获取可用SSID列表()
- 获取所有可用WiFi网络的SSID列表。WiFi必须处于启用状态。
注意: 需要位置权限和GPS启用才能使用此方法。必须构建应用才能测试。
- 获取连接信息()
- 获取当前WiFi连接的详细信息。
- 支持5GHz频段()
- 检查设备是否支持5GHz WiFi频段,返回true或false。
- 信号强度()
- 获取当前WiFi信号强度(RSSI),返回0-100之间的数值。
- 安全类型()
- 获取当前SSID的安全类型。可能的值:WPA3、WPA2、WPA、WEP、Open、Unknown。
- 接入点IP()
- 获取WiFi接入点的IP地址。
- DNS服务器()
- 返回当前网络的DNS服务器列表(主DNS和辅DNS)。
- API级别()
- 返回设备的Android API级别。
- 位置权限已授权()
- 返回位置权限是否已授权,true或false。
- 请求位置权限()
- 请求位置权限。SSID、BSSID、AvailableSSIDs方法需要此权限。
网络请求API方法 (Android 10+)
- 连接SSID(网络名称,密码)
- 连接到指定的WiFi网络。适用于Android 10及以上版本。
注意: 使用此API创建的连接不提供互联网连接!用户可能需要授权。
- 断开SSID连接()
- 断开当前WiFi连接。适用于Android 10及以上版本。
- 拥有系统写入权限()
- 检查是否拥有系统写入权限,返回true或false。如果没有权限,会自动打开设置页面。
网络建议API方法 (Android 10+)
- 添加网络建议(网络名称,密码,安全类型)
- 添加WiFi网络建议。适用于Android 10/API级别29及以上。
- 移除网络建议(网络名称)
- 移除指定的WiFi网络建议。适用于Android 10/API级别29及以上。
- 获取所有网络建议()
- 获取所有网络建议的列表。
重要限制说明
Android 10+限制
从Android 10开始,WiFi功能受到以下限制:
- 无法以编程方式启用/禁用WiFi
- 需要用户授权才能连接网络
- 位置权限和GPS启用是某些功能的先决条件
网络建议API注意事项
- 如果用户在WiFi设置中手动断开建议的网络,该网络将被阻止24小时
- 卸载应用时,如果连接到建议的WiFi,系统会自动关闭连接
- 用户可以在设置中更改WiFi控制权限
AvailableSSIDs方法限制
Android将在未来版本中移除应用触发扫描请求的功能,此方法可能停止工作。
使用示例
基本WiFi状态检查
when Screen1.Initialize
do
// 检查WiFi是否启用
set WifiEnabled to TaifunWiFi1.IsEnabled
// 获取本地IP
set LocalIP to TaifunWiFi1.LocalIP
// 获取信号强度
set SignalStrength to TaifunWiFi1.SignalStrength
获取网络信息
when Button1.Click
do
// 检查位置权限
if not TaifunWiFi1.IsLocationPermissionGranted then
call TaifunWiFi1.RequestLocationPermission
else
// 获取当前WiFi信息
set CurrentSSID to TaifunWiFi1.SSID
set CurrentBSSID to TaifunWiFi1.BSSID
set SecurityType to TaifunWiFi1.SecurityType
set ConnectionInfo to TaifunWiFi1.ConnectionInfo
扫描可用网络
when Button2.Click
do
// 检查位置权限
if TaifunWiFi1.IsLocationPermissionGranted then
// 获取可用网络列表
set AvailableNetworks to TaifunWiFi1.AvailableSSIDs
// 显示前5个网络
for each item in AvailableNetworks
if index = 1 or index = 2 or index = 3 or index = 4 or index = 5 then
set Label1.Text to Label1.Text + "网络 " + index + ": " + item
连接到WiFi网络 (Android 10+)
when Button3.Click
do
// 检查系统写入权限
if not TaifunWiFi1.HaveSystemWritePermission then
// 权限不足,系统会自动打开设置页面
show notification "请授予系统写入权限"
else
// 尝试连接到指定网络
call TaifunWiFi1.ConnectSSID "MyNetwork" "MyPassword"
兼容性说明
- 最低Android版本: Android 5.0 (API 21)
- 推荐Android版本: Android 8.0+ (API 26+)
- 某些功能限制: Android 10+ (API 29+)
故障排除
常见问题
Q: SSID/BSSID方法返回空值? A: 确保已授权位置权限,GPS已启用,并构建应用进行测试。
Q: WiFi启用/禁用功能不工作? A: Android 10+系统限制,需要用户手动操作。
Q: 连接WiFi失败? A: 检查是否有系统写入权限,确保密码正确,网络是否可用。
Q: 扫不到可用网络? A: 确保WiFi已启用,位置权限已授权,GPS已开启。
开发信息
- 开发者: Taifun (Pura Vida Apps)
- 当前版本: 18 (2025年4月)
- 许可证: 免费扩展
- 支持: App Inventor社区论坛
相关资源
本文档基于PuraVidaApps TaifunWiFi扩展官方文档整理,更多信息请访问原始页面。
扫码添加客服咨询