在Juice中,enum DetailedState添加了一个名为
的新状态/** Link has poor connectivity. */
VERIFYING_POOR_LINK
但这个状态代表什么?
搜索完整个项目后,我发现了这个:
WifiStateMachine.java中的子类VerifyingLinkState
class VerifyingLinkState extends State {
@Override
public void enter() {
if (DBG) log(getName() + "\n");
EventLog.writeEvent(EVENTLOG_WIFI_STATE_CHANGED, getName());
setNetworkDetailedState(DetailedState.VERIFYING_POOR_LINK);
mWifiConfigStore.updateStatus(mLastNetworkId, DetailedState.VERIFYING_POOR_LINK);
sendNetworkStateChangeBroadcast(mLastBssid);
}
@Override
public boolean processMessage(Message message) {
switch (message.what) {
case WifiWatchdogStateMachine.POOR_LINK_DETECTED:
//stay here
break;
case WifiWatchdogStateMachine.GOOD_LINK_DETECTED:
try {
mNwService.enableIpv6(mInterfaceName);
} catch (RemoteException re) {
loge("Failed to enable IPv6: " + re);
} catch (IllegalStateException e) {
loge("Failed to enable IPv6: " + e);
}
setNetworkDetailedState(DetailedState.CONNECTED);
mWifiConfigStore.updateStatus(mLastNetworkId, DetailedState.CONNECTED);
sendNetworkStateChangeBroadcast(mLastBssid);
transitionTo(mConnectedState);
break;
default:
return NOT_HANDLED;
}
return HANDLED;
}
}
在验证链接状态时,在enter()
函数中,它将DetailedState设置为
DetailedState.VERIFYING_POOR_LINK
这将导致用户在连接非常好时感到困惑,无法获得如下图所示的状态消息。
虽然此消息只停留一段时间,然后迅速替换为“已连接”。但这个州的目标是什么?如果我未在enter()
函数中将DetailedState设置为VERIFYING_POOR_LINK,则会有什么风险。
答案 0 :(得分:0)
虽然我无法给出肯定(或保证)的答案..
我会说这意味着连接很弱(小于30%(?)信号)
编辑:
Android提供了避免/忽略低连接性接入点的能力 - 我假设此状态表明不应该使用该连接。
我没有看到忽视/忽视这种状态的任何风险。
编辑2:
根据最近的评论,我从android文档中摘录了这段摘录:
找到public static final NetworkInfo.DetailedState VERIFYING_POOR_LINK
在API级别16中添加链接连接不良。
答案 1 :(得分:0)
VERIFYING_POOR_LINK
某些三星设备是Wi-Fi Smart Network Switch
的一部分,如果条件恶劣,可以允许移动数据通过Wi-Fi保持连接。对于三星设备,当您看到详细状态时,从CONNECTED
转到VERIFYING_POOR_LINK
。
WifiWatchdogStateMachine监控与WiFi网络的连接。当WiFi 在L2层连接,来自接入点的信标到达设备及其 可以保持连接,但应用程序连接可能是不稳定的(由于 更大的数据包大小交换)。
我们现在使用丢包率监视WiFi上最后一跳的质量 一个指示器,用于确定链路是否足够好以切换到Wi-Fi作为上行链路。
当连接WiFi时,WiFi看门狗继续对RSSI和RSSI进行采样 即时数据包丢失,并按照每个AP丢失到rssi的统计信息进行记录。什么时候 即时数据包丢失高于阈值,WiFi看门狗发送一个 链接通知不良,暂时避免WiFi连接。
虽然WiFi正在被避免,但WiFi看门狗继续观看RSSI 带回WiFi连接。一旦RSSI足够高就可以达到 较低的丢包率,良好的链路检测发送使WiFi 连接再次可用。
BSSID漫游已被考虑在内。当用户移动时 多个AP,WiFi看门狗将检测到并继续观看 目前已连接AP。
功率影响应该是最小的,因为大部分测量依赖于已经在驱动器上跟踪的被动统计,并且当屏幕打开并且RSSI在一定范围内时进行轮询。