Android

Android以太网和wifi共存并设置Wif优先级最高

2021-07-13  本文已影响0人  Lazy1
  1. Wifi初始分值为60(WifiStateMachine.java);
  2. Ethernet初始分值为70(EthernetNetworkFactory.java);
  3. Mobile network初始分值为50(DataConnection.java)
  4. bt-pan初始分值为69(BluetoothTetheringNetworkFactory.java):
    在实际运行中,还会根据网络的实时状态调整分值,所以这里可以看到Android系统默认是以太网的优先级最高,wif最高优先级为60大于60也是60,以太网根据网卡的up和down状态,把分值设置为70(NETWORK_SCORE)或0。
private void teardownUnneededNetwork(NetworkAgentInfo nai) {
if (nai.numRequestNetworkRequests() != 0) {
for (int i = 0; i < nai.numNetworkRequests(); i++) {
NetworkRequest nr = nai.requestAt(i);
// Ignore listening requests.
if (nr.isListen()) continue;
loge("Dead network still had at least " + nr);
break;
}
}
// nai.asyncChannel.disconnect();
}

1.ip route show //显示路由
2.ip rule list //显示路由表规则优先级
3.ip route flush cache //刷新路由缓存
4.ifconfig usb0 down 关闭usb0网络接口
5.ifconfig usb0 up 打开usb0网络接口

  1. svc wifi enable 打开wif
    7.svc wifi disable 关闭wif
    8 ip route get 47.110.189.28 查看某个IP访问的路由
  2. cat /proc/net/route
  3. ip route list table main

此时只是wif和以太网能共存,但是这个时候由于以太网的优先级比,wif优先级高,因此我们需要改动EthernetNetworkFactory 的NETWORK_SCORE小于60即可,还需要将WifiStateMachine的优先级设置为Integer.MAX_VALUE,这样确保wif的优先级为最高

上一篇下一篇

猜你喜欢

热点阅读