在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
这将导致用户在连接非常好的情况下收到如下图所示的状态消息而感到困惑。
虽然这个消息只停留了一段时间,然后很快就被“连接”取代了。但这个国家的目标是什么?如果我不将detailedstate设置为verifying\u poor\u link在 enter()
功能。
2条答案
按热度按时间g0czyy6m1#
虽然我不能给出一个肯定的答案。。
我想说,这意味着连接是弱的(低于30%(?)信号)
编辑:
android提供了避免/忽略低连通性接入点的能力——我假设这种状态表明不应该使用连接。
我不认为忽视这种状态有任何风险。
编辑2:
根据最近的评论,我从android文档中摘录了以下内容:
public static final networkinfo.detailedstate正在验证\u poor \u链接
api级别16中添加的链接连接不良。
可以在networkinfo.detailedstate找到它
eni9jsuy2#
VERIFYING_POOR_LINK
对于某些三星设备来说,它们是市场的一部分Smart Network Switch
在wi-fi中,如果出现恶劣情况,允许移动数据通过wi-fi保持连接。对于三星(samsung)设备,您将看到一个详细的状态CONNECTED
至VERIFYING_POOR_LINK
.大多数逻辑可以在以下方面找到:http://androidxref.com/4.3_r2.1/xref/frameworks/base/wifi/java/android/net/wifi/wifiwatchdogstatemachine.java
wifiwatchdogstatemachine监控到wifi网络的连接。当wifi在l2层连接时,来自接入点的信标到达设备并且可以保持连接,但是应用程序连接可能是脆弱的(由于更大的数据包大小交换)。
我们现在使用丢包率作为指标来监控wifi上最后一跳的质量,以确定链路是否足够好,可以切换到wifi作为上行链路。
wifi接入后,wifi看门狗不断对rssi和即时丢包进行采样,并按ap丢包记录到rssi统计中。当即时数据包丢失高于阈值时,wifi看门狗会发送一个不良链接通知,以暂时避免wifi连接。
在避免使用wifi的同时,wifi看门狗会一直监视rssi以恢复wifi连接。一旦rssi足够高以实现较低的分组丢失,则发送良好的链路检测,使得wifi连接再次可用。
已考虑bssid漫游。当用户在多个接入点之间移动时,wifi看门狗将检测到并继续监视当前连接的接入点。
功率影响应该是最小的,因为大部分测量依赖于已经在驾驶员处跟踪的被动统计数据,并且当屏幕打开并且rssi在某个范围内时进行轮询。