TaifunWiFi 拓展:手机WiFi连接管理

« 返回首页

TaifunWiFi 拓展:手机WiFi连接管理

在无线局域网中使用的功能块。

  • .aix 拓展下载:

com.puravidaapps.TaifunWiFi.aix

  • demo程序下载:

wifi.aia

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注意事项

  1. 如果用户在WiFi设置中手动断开建议的网络,该网络将被阻止24小时
  2. 卸载应用时,如果连接到建议的WiFi,系统会自动关闭连接
  3. 用户可以在设置中更改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扩展官方文档整理,更多信息请访问原始页面

文档反馈