天天看點

Android系統首選網絡類型設定

Android 首選網絡類型式預設值的修改方法

源碼部分

//設定
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

// Set the preferred network mode to target desired value or Default
// value defined in system property
String val = "";
String mode;
for (int phoneId = 0;
        phoneId < TelephonyManager.getDefault().getPhoneCount(); phoneId++) {
    mode = TelephonyManager.getTelephonyProperty(phoneId,
             "ro.telephony.default_network",
             Integer.toString(RILConstants.NETWORK_MODE_WCDMA_PREF));
    if (phoneId == 0) {
        val = mode;
    } else {
        val = val + "," + mode;
    }
}
loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, val);
           
//網絡類型
frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java

/* NETWORK_MODE_* See ril.h RIL_REQUEST_SET_PREFERRED_NETWOR
/** GSM, WCDMA (WCDMA preferred) */
int NETWORK_MODE_WCDMA_PREF = 0;
/** GSM only */
int NETWORK_MODE_GSM_ONLY = 1;
/** WCDMA only */
int NETWORK_MODE_WCDMA_ONLY = 2;
/** GSM, WCDMA (auto mode, according to PRL) */
int NETWORK_MODE_GSM_UMTS = 3;
/** CDMA and EvDo (auto mode, according to PRL) */
int NETWORK_MODE_CDMA = 4;
/** CDMA only */
int NETWORK_MODE_CDMA_NO_EVDO = 5;
/** EvDo only */
int NETWORK_MODE_EVDO_NO_CDMA = 6;
/** GSM, WCDMA, CDMA, and EvDo (auto mode, according to PRL)
int NETWORK_MODE_GLOBAL = 7;
/** LTE, CDMA and EvDo */
int NETWORK_MODE_LTE_CDMA_EVDO = 8;
/** LTE, GSM and WCDMA */
int NETWORK_MODE_LTE_GSM_WCDMA = 9;
/** LTE, CDMA, EvDo, GSM, and WCDMA */
int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10;
/** LTE only mode. */
int NETWORK_MODE_LTE_ONLY = 11;
/** LTE and WCDMA */
int NETWORK_MODE_LTE_WCDMA = 12;
/** TD-SCDMA only */
int NETWORK_MODE_TDSCDMA_ONLY = 13;
/** TD-SCDMA and WCDMA */
int NETWORK_MODE_TDSCDMA_WCDMA = 14;
/** LTE and TD-SCDMA*/
int NETWORK_MODE_LTE_TDSCDMA = 15;
/** TD-SCDMA and GSM */
int NETWORK_MODE_TDSCDMA_GSM = 16;
/** TD-SCDMA, GSM and LTE */
int NETWORK_MODE_LTE_TDSCDMA_GSM = 17;
/** TD-SCDMA, GSM and WCDMA */
int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18;
/** LTE, TD-SCDMA and WCDMA */
int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19;
/** LTE, TD-SCDMA, GSM, and WCDMA */
int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20;
/** TD-SCDMA, CDMA, EVDO, GSM and WCDMA */
int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21;
/** LTE, TDCSDMA, CDMA, EVDO, GSM and WCDMA */
int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22;
/** NR 5G only mode */
int NETWORK_MODE_NR_ONLY = 23;
/** NR 5G, LTE */
int NETWORK_MODE_NR_LTE = 24;
/** NR 5G, LTE, CDMA and EvDo */
int NETWORK_MODE_NR_LTE_CDMA_EVDO = 25;
/** NR 5G, LTE, GSM and WCDMA */
int NETWORK_MODE_NR_LTE_GSM_WCDMA = 26;
/** NR 5G, LTE, CDMA, EvDo, GSM and WCDMA */
int NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = 27;
/** NR 5G, LTE and WCDMA */
int NETWORK_MODE_NR_LTE_WCDMA = 28;
/** NR 5G, LTE and TDSCDMA */
int NETWORK_MODE_NR_LTE_TDSCDMA = 29;
/** NR 5G, LTE, TD-SCDMA and GSM */
int NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 30;
/** NR 5G, LTE, TD-SCDMA, WCDMA */
int NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 31;
/** NR 5G, LTE, TD-SCDMA, GSM and WCDMA */
int NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = 32;
/** NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA */
int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33;

int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0,
        "ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF)));
           

預設值設定

  • 修改系統屬性
#卡1用的是22,卡2用的是20
ro.telephony.default_network=22,20
           
  • 未設定系統屬性時
int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0,
-        "ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF)));
+        "ro.telephony.default_network", Integer.toString(NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)));
           
  • 修改設定資料庫
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

- loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, val);
+ loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, 22);