Change mobile network mode (gsm, wcdma, auto)

后端 未结 4 1395
陌清茗
陌清茗 2020-12-09 04:51

I want to change the preferred network mode ie. gsm or wcdma or auto, programmatically, from code, on Android.

Is this possible, and if so how ?

4条回答
  •  隐瞒了意图╮
    2020-12-09 05:40

    This is not an answer, but expanding on Tulio-F's answer.

    The RILConstants.java contain the following:

    // 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)**    
    int NETWORK_MODE_CDMA                    = 4;   // CDMA and EvDo (auto mode, according to PRL)**
    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)**
    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   = SystemProperties.getInt("ro.telephony.default_network", NETWORK_MODE_WCDMA_PREF);
    

    Where:

    ** = "AVAILABLE Application Settings menu"

提交回复
热议问题