Wi

您所在的位置:网站首页 关闭热点自动连接 Wi

Wi

2024-07-08 21:18| 来源: 网络整理| 查看: 265

Android 支持 Wi-Fi 热点(软 AP),包括通过 Wi-Fi 热点和仅限本地使用的 Wi-Fi 热点共享网络。

软 AP 功能允许配置以下内容:

SSID 和 BSSID 安全类型(包括 WPA3) 隐藏的 SSID 操作频段和频道(包括 ACS) 允许的客户端数量上限 自动关闭超时值 使用户能够控制关联设备的许可名单和屏蔽名单 AP BSSID 的 MAC 地址随机分配级别 802.11ax 和 802.11be

设备功能决定了这些控件的可用性。Android 11 引入了可用于获取相应功能的 API。设备制造商还可以使用叠加层指定基础设备功能。

请注意,在这些 API 中,有一些是系统 API,通过各种权限进行了限制,以便只有系统的“设置”应用可以访问它们。

使用热点 API 开发应用

AOSP 的“设置”应用会提供网络共享 Wi-Fi 热点的默认实现,但不会执行用于软 AP 配置的所有 API。

如需支持通过热点或仅限本地使用的热点进行网络共享,应用必须执行以下功能:

注册回调,以使用 WifiManager#registerSoftApCallback(对于网络共享热点)或 WifiManager#registerLocalOnlyHotspotSoftApCallback(对于仅限本地使用的热点)获取设备功能。

SoftApCallback 回调提供以下方法:

SoftApCallback#onCapabilityChanged:提供有关设备功能的信息,包括支持的客户端数量上限以及支持 SAE 还是 ACS。 SoftApCallback#onInfoChanged:提供有关正在运行的软 AP(仅在启动后有效)的信息,包括频段和频率信息。 SoftApCallback#onConnectedClientsChanged:提供连接的客户端列表。对于每个客户端,您都可以获取 MAC 地址。如需获取 IP 信息,请使用 TetheringEventCallback#onClientsChanged 回调。 SoftApCallback#onStateChanged:在软 AP 启用和停用时提供相应的状态更新信息。 SoftApCallback#onBlockedClientConnecting:为被屏蔽的客户端信息提供以下某一屏蔽原因:设备已达到可以支持的客户端数量上限,或客户端未获得明确授权,无法连接。

对于网络共享热点:

通过调用 WifiManager#setSoftApConfiguration 方法并提供 SoftApConfiguration 实例,配置用于网络共享的软 AP 配置。使用 SoftApConfiguration.Builder 类构造 SoftApConfiguration。 通过调用位于 TetheringManager#startTethering 的网络共享方法,启动网络共享。

对于仅限本地使用的热点:

通过调用 WifiManager#startLocalOnlyHotspot 方法,启动采用特定软 AP 配置的仅限本地使用的热点。 实现许可名单和屏蔽名单

典型的运营商要求是,为用户提供用于控制可与软 AP 相关联的设备的控件。多种机制可助您实现此目标:

使用 SoftApConfiguration.Builder#setMaxNumberOfClients 限制可与软 AP 相关联的设备数量上限。请确保指定的数值低于设备支持的客户端数量上限。您可以通过 SoftApCapability#getMaxSupportedClients 获取数量上限。

使用许可名单和屏蔽名单来提供动态控制:

软 AP 的默认配置允许除 MAC 地址添加到 SoftApConfiguration.Builder#setBlockedClientList 的设备以外的所有设备与软 AP 相关联。

如果软 AP 配置了 SoftApConfiguration.Builder#setClientControlByUserEnabled(true),系统会使用许可名单。

MAC 地址位于 SoftApConfiguration.Builder#setBlockedClientList 的所有设备均无法进行关联。 MAC 地址位于 SoftApConfiguration.Builder#setAllowedClientList 的所有设备均可以进行关联。 所有其他设备(即 MAC 地址不在许可名单和屏蔽名单中的设备)均无法进行关联,但系统会调用 SoftApCallback#onBlockedClientConnecting,从而允许控制应用(即“设置”应用)执行操作,例如让用户确认,然后根据用户的行为将设备添加到许可名单和屏蔽名单中。

请注意,仅当设备支持许可名单功能时,才能使用该功能。您可以使用 SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT) 验证设备是否支持该功能。

实现

如需支持通过热点进行共享网络或支持仅限本地使用的热点,设备制造商必须提供“设置”应用、框架和 HAL/固件支持:

“设置”应用:AOSP“设置”应用为配置具有 SSID 和安全凭据的网络共享热点提供了基准。此代码可按原样使用,也可以进行修改以提供其他功能,如使用热点 API 开发应用中所述。

框架:AOSP 框架代码支持使用热点 API 开发应用中所述的所有功能。

热点的 HAL/固件:HIDL IHostapd.hal 版本 1.2 或更高版本,或 AIDL IHostapd.aidl。

自定义

如需自定义实现,设备制造商应配置以下叠加层和运营商配置(记录在 packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml 中):

config_wifiFrameworkSoftApShutDownTimeoutMilliseconds:默认的关闭超时时间间隔。仅在 SoftApConfiguration#setAutoShutdownEnabled 已启用的情况下有效。可以使用 SoftApConfiguration#setShutdownTimeoutMillis 替换。 config_wifiHardwareSoftapMaxClientCount:支持的客户端数量上限的硬件限制。设备支持的客户端数量上限是硬件和运营商限制的下限(由 CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT 指定)。最终结果通过 SoftApCapabilities#getMaxSupportedClients 提供给应用。 config_wifiSofapClientForceDisconnectSupported:设备能否强制断开与客户端的连接。这是启用许可名单和屏蔽名单所必需的。通过 SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT) 传达给控制应用(“设置”应用)。 (自 13 开始可用)config_wifiSoftapPassphraseAsciiEncodableCheck:是否需要软 AP 口令才可进行 ASCII 编码。 config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported:在支持新设备时,云配置恢复期间是否会自动将频段设置配置升级到双频。 (自 13 开始可用)config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled:框架是否自动在频段配置中附加较低频段以避免共存处理。 config_wifiSoftApDynamicCountryCodeUpdateSupported:设备是否支持在 AP 模式下动态更新国家/地区代码 通道支持:config_wifiSoftap2gChannelList、config_wifiSoftap5gChannelList、config_wifiSoftap6gChannelList 和 config_wifiSoftap60gChannelList。 恢复支持,指定在将热点配置恢复到新设备时,是否将相应条目重置为默认值:config_wifiSoftapResetChannelConfig、config_wifiSoftapResetHiddenConfig、config_wifiSoftapResetUserControlConfig、config_wifiSoftapResetAutoShutdownTimerConfig、config_wifiSoftapResetMaxClientSettingConfig。请注意,这些配置默认设置为 true,也就是说,值会被重置。当新设备不支持配置时,这点至关重要。 硬件功能: config_wifi_softap_acs_supported config_wifi_softap_sae_supported (自 13 开始可用)config_wifiSoftapOweTransitionSupported (自 13 开始可用)config_wifiSoftapOweSupported config_wifi_softap_ieee80211ac_supported config_wifiSoftapIeee80211axSupported (自 13 开始可用)config_wifiSoftapIeee80211beSupported config_wifiSoftapMacAddressCustomizationSupported config_wifiSoftapHeSuBeamformerSupported config_wifiSoftapHeSuBeamformeeSupported config_wifiSoftapHeMuBeamformerSupported config_wifiSoftapHeTwtSupported config_wifiSoftap24ghzSupported config_wifiSoftap5ghzSupported config_wifiSoftap6ghzSupported config_wifiSoftap60ghzSupported config_wifiSoftapAcsIncludeDfs 验证

Android 提供了一组单元测试、集成测试(Android Connectivity Test Suite (ACTS))和兼容性测试套件 (CTS) 测试,供您验证热点功能。您也可以使用供应商测试套件 (VTS) 来测试热点功能。

单元测试

使用以下测试验证热点软件包。

服务测试:

atest packages/modules/Wifi/service/tests/wifitests/

Manager 测试:

atest packages/modules/Wifi/framework/tests/ 集成测试 (ACTS)

ACTS 热点测试套件(位于 tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py)可实现热点功能的功能测试。

兼容性测试套件 (CTS) 测试

使用 CTS 测试来验证热点功能。CTS 会检测何时启用了这项功能,并会自动包含相关测试。

如需触发 CTS 测试,请运行以下命令:

atest android.net.wifi.cts.WifiManagerTest 供应商测试套件 (VTS)

如果实现了 HIDL 接口,请运行以下命令:

atest VtsHalWifiHostapdV1_2Target

如果实现的是 AIDL 接口,请运行以下命令:

atest VtsHalHostapdTargetTest


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3