• 周五. 5月 2nd, 2025

Android — NETWORK_SCORE, WIFI_BASE_SCORE, NETWORK_SCORE, TELEPHONY_NETWORK_SCORE

5月 19, 2020

1、以下四个变量代表着安卓平台不同网络的评分,这些评分用于网络选择仲裁,评分越高就会优先选择。

NETWORK_SCORE,
WIFI_BASE_SCORE,
NETWORK_SCORE,
TELEPHONY_NETWORK_SCORE

2、这四个变量分别出自如下安卓SDK文件:

NETWORK_SCORE 有两个网络都用这个定义,一个是以太网,另一个是蓝牙

a. 以太网如下:

./frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java:97
private static final int NETWORK_SCORE = 70

b. 蓝牙的如下:

./packages/apps/Bluetooth/src/com/android/bluetooth/pan/BluetoothTetheringNetworkFactory.java:52
private static final int NETWORK_SCORE = 69;

c. Wifi的如下:

./frameworks/base/core/java/android/net/NetworkAgent.java:94
public static final int WIFI_BASE_SCORE = 60;

d. 移动网络的如下:

./frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java:61
private final static int TELEPHONY_NETWORK_SCORE = 50;

3、从上面四种网络的评分,我们就知道了,安卓平台网络选择顺序:以太网,蓝牙PAN, WiFi, 最后移动网络。