本页将介绍 Android 12 中用于选择和切换 Wi-Fi 网络的算法和流程。Android 会不断评估已连接网络以及其他可用网络的质量。
自动连接过程
本部分将介绍 Android 设备评估和连接到可用 Wi-Fi 网络的过程。
设备采用以下其中一种方式扫描可用网络,具体方式取决于屏幕是处于开启还是关闭状态。
- 屏幕开启(已连接):Android 连接子系统会定期评估当前连接的质量是否足够好,可以跳过扫描(如在屏幕开启时扫描中所定义)。如果连接质量没那么好,不能跳过扫描,连接子系统会触发扫描,以检测可用的网络。其他系统组件也可触发此类扫描,例如位置系统或应用(包括“设置”应用)。
- 屏幕开启(已断开连接):Android 连接子系统按照指数退避算法安排进行定期扫描。该模块会评估收到的所有扫描结果,并尝试选择要连接的最佳网络。
- 屏幕关闭(已断开连接):在屏幕进入关闭状态后,主机 CPU 随即通过首选分流网络 (PNO) 扫描,以编程方式在固件中嵌入一个首选网络列表。固件在检测到任何首选网络时,就会唤醒主机。AOSP 假定设备支持 PNO。
WifiManager#allowAutojoinGlobal(boolean)
方法可用于停用自动连接。这是一个特权 API,设备制造商仅在少数情况下可以使用(例如,用于预先配置的非移动设备)。如果设备处于连接状态且
config_wifi_framework_enable_associated_network_selection
叠加层设为false
,则系统不会执行任何连接扫描,且扫描结果不会触发网络选择。此设置在设备断开连接时不会产生任何影响,也就是说,系统仍会执行连接扫描和触发网络选择。系统评估扫描结果。
如果设备连接到了某个 Wi-Fi 网络,框架会评估当前网络质量是否足够好,可以跳过网络选择。
如果网络满足以下任一要求,即可被视为质量足够好,可以跳过网络选择:
- 自上次选择网络以来过去的时间不到 10 秒钟。
- 用户最近手动连接到网络(其中“最近”的期限可使用
config_wifiSufficientDurationAfterUserSelectionMilliseconds
叠加层进行配置)。 - 设备已连接到在线注册 (OSU) 连接。
满足以下所有要求:
- RSSI 高于所需的 RSSI 阈值,或者有足够多的流量通过连接(如需了解 RSSI 和流量阈值,请参阅在屏幕开启时扫描)。
- 网络已经过验证(已连接到互联网)或已获得用户批准,可在未接入互联网的情况下使用。
- 网络不按流量计费。
如果网络质量足够好,可以跳过网络选择,则不会执行进一步的操作。
如果连接的 Wi-Fi 网络的质量不够好或设备未连接到网络,那么框架会调用网络提名程序,根据经过过滤的扫描结果生成可连接到的候选 Wi-Fi 网络列表。网络提名程序会查找现有的 Wi-Fi 配置,或为候选网络创建新的配置。
系统会对扫描结果进行过滤,以便移除在条目 RSSI 下具有 RSSI 的 BSSID(可使用
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
、config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
和config_wifiFrameworkScoreEntryRssiThreshold6ghz
叠加层进行配置)。此外,系统还会过滤已屏蔽的 BSSID。可以根据一再的连接失败、频繁地断开连接以及来自 AP 的明确请求来屏蔽 BSSID,使其不在特定时间段内尝试连接 (MBO-OCE)。下面的 SSID 屏蔽和 BSSID 屏蔽部分对 BSSID 屏蔽进行了介绍。当设备快速移动时,选择性地进一步过滤扫描结果,以便移除 RSSI 快速变化的 BSSID(这表明它们不随设备一起移动)。此优化可使用
config_wifiHighMovementNetworkSelectionOptimizationEnabled
(启用/停用优化)以及config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
和config_wifiHighMovementNetworkSelectionOptimizationRssiDelta
叠加层进行配置,而这些叠加层可配置对扫描结果的稳定性要求(扫描结果中 RSSI 发生变化的时间间隔足够长)。
框架运行候选网络评分器,针对每个服务集标识符 (SSID) 候选网络生成一个评分。SSID 候选网络可以包含多个由网络提名程序生成的基本服务集标识符 (BSSID) 候选网络。得分最高的候选网络为获胜候选网络。
该框架会执行用户连接选择算法,这样可能会使用户选择的网络成为新的获胜候选网络,而不是使用候选网络评分器中获胜的候选网络。
框架确定获胜候选网络是否与当前连接的网络匹配。要被视作匹配,必须满足以下条件之一:
- 获胜候选网络和连接的 Wi-Fi 网络具有相同的 BSSID。
- 如果支持固件漫游(包括 BSSID 黑名单功能),则获胜候选网络和连接的网络需具有相同的 SSID 和安全类型。
如果获胜候选网络与当前连接的网络匹配,则不会进行进一步操作。如果获胜候选网络与当前连接的网络不匹配,则会将设备连接到获胜的候选网络。
请注意,当应用使用 Wi-Fi Network Request API 时,系统会停用自动网络连接,因为该 API 会覆盖系统并创建不联网的 LAN,但支持双并发站点的设备除外。
评估连接的网络
Android 框架或固件会定期评估已连接网络的质量。本部分将介绍如何在屏幕开启和关闭的情况下分别评估已连接网络的质量。
这种评估基于上文讨论的网络选择进行。
屏幕开启
Android 框架通过以下方式评估已连接网络的质量:
Wi-Fi 服务每 3 秒轮询一次 RSSI 和链路层统计数据(可使用
config_wifiPollRssiIntervalMilliseconds
叠加层进行配置)。如果使用
config_wifiAdjustPollRssiIntervalEnabled
叠加层启用了动态间隔调整,则轮询间隔会根据设备移动状态和 RSSI 而动态变化。- 当设备静止不动且 RSSI 高于 -68 dBm(由
config_wifiClientRssiMonitorThresholdDbm
和config_wifiClientRssiMonitorHysteresisDb
叠加层配置)时,轮询间隔将延长至 6 秒(由config_wifiPollRssiLongIntervalMilliseconds
叠加层配置)。 - 当设备并非静止不动或 RSSI 低于 -73 dBm(由
config_wifiClientRssiMonitorThresholdDbm
叠加层配置)时,轮询间隔将重新缩短至 3 秒(由config_wifiPollRssiIntervalMilliseconds
叠加层配置)。
- 当设备静止不动且 RSSI 高于 -68 dBm(由
Wi-Fi 服务根据 RSSI 和链路层统计数据计算连接网络的得分。
Wi-Fi 服务将得分传递给连接服务,连接服务根据得分确定是连接到 Wi-Fi 网络还是连接到另一种可用的网络类型,例如移动网络。
屏幕关闭
框架不会发起对已连接网络的评估,但如果其他组件(例如位置信息服务)发起扫描,网络选择过程可能仍然会发生。固件会评估网络质量,如果网络质量差,固件可能会执行漫游或(最终)断开与网络的连接并唤醒主机。
连接扫描
系统会根据以下三种情况执行不同的自动扫描:设备屏幕开启,屏幕关闭且连接到 Wi-Fi,屏幕关闭且未连接到 Wi-Fi。
屏幕开启
当屏幕开启时,框架会以不断增加的时间间隔触发扫描决定。扫描决定时间间隔使用 config_wifiDisconnectedScanIntervalScheduleSec
、config_wifiConnectedScanIntervalScheduleSec
和 config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
叠加层(它们是整数数组)进行配置。默认情况下,扫描会遵循指数退避算法,按照 20 秒、40 秒、80 秒和 160 秒的时间间隔执行,后续扫描可能会按照 160 秒的时间间隔执行(这些是上述叠加层的默认值)。
每当屏幕状态改变(即屏幕开启或关闭)时,指数退避扫描时间间隔都会重置,并重新以 20 秒的时间间隔开始执行。
(Android 13 以上版本)如果在运行时需要不同的扫描间隔,OEM 特权应用可以调用 WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
API 来动态设置屏幕开启扫描时间表。
执行扫描还是跳过扫描的决定取决于当前网络连接的质量是否好到足以跳过扫描。如果满足以下任一要求,说明连接质量足够好,可以跳过扫描:
- 设备已连接到在线注册 (OSU) 连接。
- 有足够的流量流经连接(请参阅下面的“流量阈值”)。
- RSSI 高于要求的 RSSI 阈值(请参阅下面的“RSSI 阈值”);最近(默认为 10 分钟,但可以使用
config_wifiConnectedHighRssiScanMinimumWindowSizeSec
叠加层进行配置)执行了网络选择;且网络已经过验证(已连接到互联网),或网络已获用户批准,可在无法联网的情况下使用。
RSSI 和流量阈值如下:
- 对于 2.4 GHz 频段,RSSI 高于 -73 dBm(使用
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
叠加层进行配置);对于 5 GHz 和 6 GHz 频段,RSSI 高于 -70 dBm(使用config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
和config_wifiFrameworkScoreLowRssiThreshold6ghz
叠加层进行配置)。 - 流量传输或接收速度高于 16 个数据包/秒 (pps)(使用
config_wifiFrameworkMinPacketPerSecondActiveTraffic
叠加层进行配置)。
设备处于已连接状态且屏幕处于开启状态。连接的评分器会定期监控 Wi-Fi 质量,具体方式是查看 RSSI 和传输的数据包数量等信号。如果判定 Wi-Fi 质量不佳(如下文所述),并且设备支持双并发站点,则会触发扫描。config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
叠加层可用于配置触发扫描的分数阈值。config_wifiLowConnectedScoreScanPeriodSeconds
叠加层可用于配置这些扫描的周期。
屏幕关闭且已连接到 Wi-Fi
当屏幕关闭且设备连接到 Wi-Fi 网络时,固件(Wi-Fi SoC)会执行漫游扫描。当屏幕关闭时,框架不会执行任何扫描。
屏幕关闭且未连接到 Wi-Fi(断开连接状态)
当屏幕关闭且设备与 Wi-Fi 断开连接时,固件会对 SSID 执行 PNO 扫描。框架为固件配置了要扫描的 SSID 列表和要在其中进行扫描的通道列表。如果找到配置的 SSID,固件就会唤醒框架。
框架还会配置固件执行 PNO 扫描的时间间隔,根据设备移动状态选择不同的扫描时间间隔,以。在低移动状态(设备处于静止状态)下,前三次扫描的时间间隔为 60 秒(通过 config_wifiStationaryPnoScanIntervalMillis
叠加层控制),后续扫描的时间间隔为 180 秒(固定为通过叠加层所设时间的 3 倍)。在高移动状态下,前三次扫描的时间间隔为 20 秒(通过 config_wifiMovingPnoScanIntervalMillis
叠加层控制),后续扫描的时间间隔为 60 秒(固定为通过叠加层所设时间的 3 倍)。
网络提名程序
网络提名程序会为以下网络查找或创建配置 (WifiConfiguration
):
- 可用的网络(基于扫描结果)或连接的网络(有时会因扫描结果异常而缺失)。
- 具有最低的 RSSI 的网络。对于 2.4 GHz 频段,最低 RSSI 为 -80 dBm;对于 5 GHz 和 6 GHz 频段,最低 RSSI 为 -77 dBm。可使用
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
、config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
和config_wifiFrameworkScoreEntryRssiThreshold6ghz
叠加层进行配置。 - 未被屏蔽的网络(例如,由于之前的连接失败)。
- 未指示自己无法使用的网络(例如,使用 MBO/OCE)。
- 可使用设备上可用的凭据连接的网络。
使用的网络提名程序如下:
- 已保存网络提名程序:评估所有已保存的网络(包括已保存的 Passpoint 订阅)。
- 推荐网络提名程序:评估应用使用 Suggestion API 提供的所有网络(包括推荐的 Passpoint 订阅)。
- 外部评分网络提名程序:用于向设备提供网络连接选项的 OEM 机制。如需了解详情,请参阅外部网络评分服务提供方。
候选网络评分器
候选网络评分器会为每个候选网络评分。ThroughputScorer
(默认评分器)依据以下几点提供评分:
- 基本评分基于 RSSI 计算得出,其中对于 2.4 GHz 频段,RSSI 的上限为 -73 dBm;对于 5 GHz 和 6 GHz 频段,RSSI 的上限为 -70 dBm(使用
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
、config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
和config_wifiFrameworkScoreLowRssiThreshold6ghz
叠加层进行配置)。 - 加分基于根据技术、通道频率、带宽、RSSI、通道条件、空间串流数上限和其他参数推导的吞吐量估算值计算得出。加分可以使用
config_wifiFrameworkThroughputBonusNumerator
和config_wifiFrameworkThroughputBonusDenominator
叠加层进行配置,并且不得高于使用config_wifiFrameworkThroughputBonusLimit
叠加层指定的最大值。 - 最近被用户或应用选择的候选网络在可使用
config_wifiFrameworkLastSelectionMinutes
叠加层配置的时间范围内可以获得较高的加分(在该时间范围内,可保证系统会选择该网络,而不是非用户选择的网络)。 - 与当前网络匹配的候选网络可以获得由
config_wifiFrameworkCurrentNetworkBonusMin
和config_wifiFrameworkCurrentNetworkBonusPercent
叠加层配置的加分(根据基于其 RSSI 和吞吐量的得分,该候选网络能够获得一定百分比的额外附加分,最低为可配置的最小值)。 - 安全网络的得分高于开放网络。附加分使用
config_wifiFrameworkSecureNetworkBonus
叠加层进行配置。 - 不按流量计费(免费)的网络的得分高于按流量计费(付费)的网络。附加分使用
config_wifiFrameworkUnmeteredNetworkBonus
叠加层进行配置。 - 已保存网络的得分高于使用 Suggestion API 推荐的网络。附加分使用
config_wifiFrameworkSavedNetworkBonus
叠加层进行配置。 - 不受信任的网络(可以作为 Suggestion API 的一部分请求)的得分低于任何其他网络。
- 如果设备当前连接到另一个具有互联网连接的网络,则之前检测到不联网的网络的得分为 0。
已保存网络与推荐网络和不按流量计费的网络与按流量计费的网络的默认附加分(即默认叠加值)会确立以下有关已保存、推荐、按流量计费和不按流量计费的网络的严格优先级顺序:
- 已保存的不按流量计费的网络
- 推荐的不按流量计费的网络
- 已保存的按流量计费的网络
- 推荐的按流量计费的网络
这意味着,相对于已保存的按流量计费(付费)的网络,系统始终会优先选择已保存的不按流量计费(免费)的网络。由用户或应用最近选择的网络的附加分可能会覆盖该严格的优先级顺序。
框架可以安装多个候选网络评分器,但一次只能使用一个。其他评分器可作为调查替代算法优劣的指标。在 Android 11 中,默认评分器为 ThroughputScorer
。
SSID 屏蔽和 BSSID 屏蔽
框架可能会屏蔽 SSID 或 BSSID,也就是说,不考虑将它们用于临时或永久连接。
BSSID 屏蔽
BSSID 屏蔽的工作原理是,确保每种特定的失败类型具有两个失败计数器:一个连续失败计数器和一个条纹计数器(如需获取失败类型列表,请参阅下文)。当失败发生时:
- 对应的失败类型的计数器计数会增加。
- 如果达到该失败类型的失败阈值,那么:
- BSSID 会被屏蔽。
- 该失败类型的条纹计数器计数会增加。
BSSID 被屏蔽的时长从可配置的基础值(由 config_wifiBssidBlocklistMonitorBaseBlockDurationMs
或 config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
叠加层指定,具体取决于 RSSI)开始,并成倍地增加,直到达到可配置的上限(由 config_wifiBssidBlocklistMonitorFailureStreakCap
叠加层指定)。如果同一 BSSID 上连续发生失败,那么屏蔽时长会增加。这里的屏蔽时长是指按失败条纹成倍增加的基础时长,也就是说,失败条纹为 2 即意味着 4 倍的基础屏蔽时长。
BSSID 屏蔽的阈值取决于失败原因,并且均可使用叠加层进行自定义:
- AP 拒绝使用 MBO/OCE 进行连接 -“无法处理新的 STA”代码:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
。 - 通过此网络进行互联网验证失败:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
。 - 密码错误 - 身份验证失败代码:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
。 - EAP 失败 - EAP 网络的身份验证失败代码:
config_wifiBssidBlocklistMonitorEapFailureThreshold
。 - 连接遭拒,其他一般连接遭拒:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
。 - 连接超时:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
。 - 身份验证失败,其他一般身份验证失败:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
。 - DHCP 失败,无法配置 DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
。 - 断开连接异常,设备连接到网络后很快便断开与它的连接:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
。此处的时间范围可使用config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
进行配置。
BSSID 屏蔽名单清除条件
满足以下条件时,系统会从屏蔽名单中清除 BSSID:
- 切换了 Wi-Fi:所有 BSSID 都会从屏蔽名单中移除。
- 用户点按 Wi-Fi 选择器中的某个网络:用户选择的网络的所有 BSSID 都会从屏蔽名单中移除。
- 超时:达到屏蔽时长后,BSSID 会从屏蔽名单中移除。
- 重新启动:所有屏蔽名单都会清除。
- 移除了网络:与相应网络相关联的所有 BSSID 均会从屏蔽名单中移除。
失败计数器和条纹计数器重置条件:
- 重新启动:重置所有 BSSID。
- 移除了网络:重置与相应网络相关联的 BSSID。
L2 连接成功:重置以下错误代码。
REASON_AP_UNABLE_TO_HANDLE_NEW_STA
REASON_WRONG_PASSWORD
REASON_EAP_FAILURE
REASON_ASSOCIATION_REJECTION
REASON_ASSOCIATION_TIMEOUT
REASON_AUTHENTICATION_FAILURE
REASON_ABNORMAL_DISCONNECT
(仅当距离设备上次连接到此 BSSID 的时间超过 3 小时时才会有条件地清除)REASON_NONLOCAL_DISCONNECT_CONNECTING
网络验证成功:重置以下错误代码。
REASON_NETWORK_VALIDATION_FAILURE
DHCP 配置成功:重置以下错误代码。
REASON_DHCP_FAILURE
SSID 屏蔽
SSID 屏蔽的工作原理与 BSSID 屏蔽类似。当发生某种类型的连接失败时,每个网络该失败类型的失败计数器计数便会增加。当特定类型的失败计数超出阈值时,系统会基于配置永久或临时屏蔽 SSID。每种失败类型的配置均在 WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS
中进行编码,总结如下。
* 对于临时停用的网络,停用的时长会根据在该网络上遇到的连续连接失败次数动态变化。如果网络连续连接失败五次,则每次失败都将导致停用时长变为前一次停用时长的两倍。例如,如果某个网络在连续五次连接失败时被停用 5 分钟,则第六次连接失败时将被停用 10 分钟,第七次连接失败时将被停用 20 分钟,依此类推,直至达到 18 小时的上限。 |
||||
失败代码 | 说明 | 阈值 | 基础停用时长* | 停用类型 |
---|---|---|---|---|
DISABLED_DHCP_FAILURE |
未能配置 DHCP | 5 | 5 分钟 | 临时 |
DISABLED_NO_INTERNET_TEMPORARY |
网络验证失败,但用户表示他们希望将来始终连接到此网络 | 1 | 10 分钟 | 临时 |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
客户端缺少凭据,无法连接到网络 | 1 | 不适用 | 永久 |
DISABLED_NO_INTERNET_PERMANENT |
网络验证失败的默认代码 | 1 | 不适用 | 永久 |
DISABLED_BY_WIFI_MANAGER |
已废弃及未使用 | 1 | 不适用 | 永久 |
DISABLED_BY_WRONG_PASSWORD |
密码错误,并且从未成功连接到此网络 | 1 | 不适用 | 永久 |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
EAP 失败,原因为 SIM 卡未订阅 | 1 | 不适用 | 永久 |
DISABLED_ASSOCIATION_REJECTION |
连接遭拒失败 | 5 | 5 分钟 | 临时 |
DISABLED_AUTHENTICATION_FAILURE |
其他身份验证失败(即非密码错误或 EAP 失败) | 5 | 5 分钟 | 临时 |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
特定于提供方(专用)的 EAP 失败。 | 1 | 不适用 | 永久 |
DISABLED_NETWORK_NOT_FOUND |
请求方在扫描结果中未找到与框架请求连接的网络(包括网络功能)匹配的网络。 | 2 | 5 分钟 | 临时 |
DISABLED_CONSECUTIVE_FAILURES |
网络连接连续失败五次或超过五次。连接失败的类型包括但不限于下表中列出的失败类型。 |
5 | 5 分钟 | 临时 |
在以下情况下,系统会重新启用已临时停用的网络:
- 停用时间已过。
- 用户手动选择连接该网络。
- 用户切换 Wi-Fi。
- 系统重新启动。
- 系统在 RSSI 非常低时停用网络,但之后又检测到中等或更高的 RSSI。
在以下情况下,系统会重新启用已永久停用的网络:
- 用户手动选择连接该网络。
在以下情况下,系统会重置某个网络的失败计数器:
- 移除了该网络。
- 设备已成功连接到该网络。
- 停用时间过去后,该网络已重新启用。
- 用户手动选择连接该网络。
- 系统重新启动。
计分卡
Android 10 中引入的记分卡可以记录设备上的 BSSID 相关统计信息。系统使用 IpMemoryStore
服务保存记分卡。
Android 11 的网络选择功能不使用记分卡。
用户连接选择
Android 提供一种用户连接选择算法,可使选择过程优先选择用户明确连接过的 Wi-Fi 网络,例如家庭网络。即使这类网络的性能低于公共网络,用户也可能更倾向于连接到这类网络,因为这类网络可以提供额外的服务,例如能够控制家用设备。
系统会捕获用户对网络的偏好,方法是在用户选择网络时标记所有可见的 Wi-Fi 配置及其信号强度。如果在自动选择过程中选择了其中一种标记的 Wi-Fi 配置,并且有可用的用户选择的网络,则在满足以下条件时,用户连接选择算法会将原来选择的网络替换为用户选择的网络:
- 用户连接选择网络在上次使用时连接到互联网
- 用户连接选择的网络信号强度不低于最初选择此网络时的信号强度,但有误差。此误差可使用叠加层
config_wifiEstimateRssiErrorMarginDb
进行配置。
用户连接选择网络会在重新启动后保留。用户连接选择适用于已保存网络、Passpoint 网络和推荐网络。
双并发站点
本部分介绍了设备支持同时连接到两个 Wi-Fi 网络的 Wi-Fi 网络选择。
Make-before-break
如果启用了 make-before-break 功能,设备将尝试连接到新网络,然后断开与旧网络的连接。Make-before-break 流程与 break-before-make(即设备在连接到新网络之前断开与旧网络的连接)网络切换使用同一网络选择算法。如果网络选择算法选择无法使用 make-before-break 进行切换的网络,则设备会自动回退到 break-before-make。
并发受限和互联网连接
如果启用了并发受限和互联网连接功能,设备可以连接到第二受限 Wi-Fi 网络,该网络仅用于设备制造商配置的指定应用。有关设备制造商如何配置此设置的说明,请参阅并发受限和互联网连接。
当网络选择算法检测到与 OEM 付费/专用推荐网络匹配的扫描结果时,会自动连接到该网络作为第二网络。 主 Wi-Fi 网络(为常规应用提供互联网连接)的网络选择通常并行进行。
常见问题解答 (FAQ)
安全网络是否始终优先于开放网络?
不是。已保存网络与推荐网络之间的比较,以及按流量计费的网络与不按流量计费的网络之间的比较,这两项是网络评估的主要类别。在每个类别中,安全网络的优先级高于开放网络,但连接质量具有更高的权重。
这是因为实际的用户数据安全性由端到端加密(例如传输层安全协议 (TLS))提供。安全网络仅会对通信的第一阶段进行加密,即便如此,对于具有预共享密钥的网络,也不会提供很多私密保护。
为什么已保存网络的优先级高于推荐网络?
已保存的免费(不按流量计费)网络的优先级高于推荐的免费网络,而已保存的按流量计费的网络的优先级高于推荐的按流量计费的网络。
已保存网络的优先级高于推荐网络,因为已保存网络是用户明确添加到设备上的网络。这意味着用户更倾向于连接到这些网络(如果可能)。
请注意,用户可以停用各个已保存网络的自动连接行为,这意味着,这些网络仅可通过手动连接,设备不会自动考虑使用这些网络。
我可以更改严格的优先级顺序或将其彻底移除吗?
设备制造商可以通过修改上面几个部分中列出的附加分叠加层来修改网络选择决定。不过,建议您不要更改默认值,因为默认值是在认真考虑多种用例后选择的。