Android(安卓)P系统设置之默认选择网络类型(4G,3G,2G)
16lz
2021-12-04
frameworks\base\telephony\java\com\android\internal\telephony\RILConstants.java
build\make\tools\buildinfo.sh
buildinfo.sh中增加:
echo "ro.telephony.default_network=11"
网络类型定义:
frameworks\base\telephony\java\com\android\internal\telephony\RILConstants.java
/* NETWORK_MODE_* See ril.h RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE */int NETWORK_MODE_WCDMA_PREF = 0; /* GSM/WCDMA (WCDMA preferred) */int NETWORK_MODE_GSM_ONLY = 1; /* GSM only */int NETWORK_MODE_WCDMA_ONLY = 2; /* WCDMA only */int NETWORK_MODE_GSM_UMTS = 3; /* GSM/WCDMA (auto mode, according to PRL) AVAILABLE Application Settings menu*/int NETWORK_MODE_CDMA = 4; /* CDMA and EvDo (auto mode, according to PRL) AVAILABLE Application Settings menu*/int NETWORK_MODE_CDMA_NO_EVDO = 5; /* CDMA only */int NETWORK_MODE_EVDO_NO_CDMA = 6; /* EvDo only */int NETWORK_MODE_GLOBAL = 7; /* GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL) AVAILABLE Application Settings menu*/int NETWORK_MODE_LTE_CDMA_EVDO = 8; /* LTE, CDMA and EvDo */int NETWORK_MODE_LTE_GSM_WCDMA = 9; /* LTE, GSM/WCDMA */int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; /* LTE, CDMA, EvDo, GSM/WCDMA */int NETWORK_MODE_LTE_ONLY = 11; /* LTE Only mode. */int NETWORK_MODE_LTE_WCDMA = 12; /* LTE/WCDMA */int NETWORK_MODE_TDSCDMA_ONLY = 13; /* TD-SCDMA only */int NETWORK_MODE_TDSCDMA_WCDMA = 14; /* TD-SCDMA and WCDMA */int NETWORK_MODE_LTE_TDSCDMA = 15; /* TD-SCDMA and LTE */int NETWORK_MODE_TDSCDMA_GSM = 16; /* TD-SCDMA and GSM */int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; /* TD-SCDMA,GSM and LTE */int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; /* TD-SCDMA, GSM/WCDMA */int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; /* TD-SCDMA, WCDMA and LTE */int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; /* TD-SCDMA, GSM/WCDMA and LTE */int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; /*TD-SCDMA,EvDo,CDMA,GSM/WCDMA*/int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; /* TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo */int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0, "ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF)));
网络类型4G,3G和2G的判断参考:
/** * 判断移动网络的类型 * * @param networkType * @return 移动网络类型 */private static final int getNetworkClass(int networkType) { switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return NETWORK_2G; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: return NETWORK_3G; case TelephonyManager.NETWORK_TYPE_LTE: return NETWORK_4G; default: return NETWORK_UNKNOW; }}
参考文献:
https://blog.csdn.net/mxiaoyem/article/details/50857008
更多相关文章
- Android检查网络是否连接
- Android的NDK开发(3)————JNI数据类型的详解
- Android连接到加密网络
- Android网络状态监听
- android之网络资源多线程下载
- Android(安卓)判断程序前后台状态
- Android(安卓)判断网络状态实例详解
- android 获取设备硬件信息
- Android(安卓)的网络编程(5)-通过ksoap2调用webservice示例