关于Android IP LOST_PROVISIONING 的机制

本文分析了AndroidP设备在WiFi连接时出现的断开问题,由于IpReachabilityMonitor机制在干扰或弱信号条件下可能导致误判。提供了两种解决方案:修改源码永久禁用该功能以及使用ADB临时关闭IpReachabilityDisconnectEnabled。
摘要由CSDN通过智能技术生成

AnroidP在WiFi连接的时候,偶尔会出现断开现象,并打印下列log

W/IpClient.wlan0: [IpReachabilityMonitor] WARN ALERT neighbor went from: NeighborEvent{@2534961,RTM_NEWNEIGH,if=23,fe80::1,NUD_PROBE,[<MYMACHERE>]} to: NeighborEvent{@2537970,RTM_NEWNEIGH,if=23,fe80::1,NUD_FAILED,[null]} W/IpReachabilityMonitor: FAILURE: LOST_PROVISIONING, NeighborEvent{@2537970,RTM_NEWNEIGH,if=23,fe80::1,NUD_FAILED,[null]}

从log上来看系统有开启IpReachabilityMonitor 机制,可能是在干扰严重环境下或相对弱信号下让系统误判导致下断线

关闭 IpReachabilityMonitor 强制断连机制

方法1:

在源码中修改成默认disable

Android 7

frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java

- private boolean mIpReachabilityDisconnectEnabled = true;

+ private boolean mIpReachabilityDisconnectEnabled = false;

Android 11

frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.java

- private boolean mIpReachabilityDisconnectEnabled = true;

+ private boolean mIpReachabilityDisconnectEnabled = false;

方法2:

用指令临时修改

adb root

adb shell cmd wifi get-ipreach-disconnect

adb shell cmd wifi set-ipreach-disconnect disabled

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值