如何通过ADB更改首选网络类型?
例如:设置仅使用GSM、仅使用WCDMA、仅使用LTE或自动模式。
这对我的设备有效:
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global SET value = 1 WHERE name = 'preferred_network_mode'"
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select value FROM secure WHERE name = 'preferred_network_mode'"
adb shell settings put global airplane_mode_on 1
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
sleep 5;
adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global SET value=1 WHERE name='preferred_network_mode'"
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select value FROM secure WHERE name='preferred_network_mode'"
adb reboot
对于LTE,更改value=11 对于WCDMA,更改value=2
设置RAT的ADB命令:
**adb shell设置全局首选网络模式1为2 --> 在SUB1上启用WCDMA
adb shell设置全局首选网络模式2为1 --> 在SUB2上启用GSM
adb shell停止ril-daemon
adb shell启动ril-daemon
adb shell设置全局飞行模式为1
adb shell广播 -a android.intent.action.AIRPLANE_MODE --ez state true
sleep 5;
adb shell设置全局飞行模式为0
adb shell广播 -a android.intent.action.AIRPLANE_MODE --ez state false**
RIL_PreferredNetworkType:
PREF_NET_TYPE_GSM_WCDMA = 0, /* GSM/WCDMA (WCDMA preferred) */
PREF_NET_TYPE_GSM_ONLY = 1, /* GSM only */
PREF_NET_TYPE_WCDMA = 2, /* WCDMA */
PREF_NET_TYPE_GSM_WCDMA_AUTO = 3, /* GSM/WCDMA (auto mode, according to PRL) */
PREF_NET_TYPE_CDMA_EVDO_AUTO = 4, /* CDMA and EvDo (auto mode, according to PRL) */
PREF_NET_TYPE_CDMA_ONLY = 5, /* CDMA only */
PREF_NET_TYPE_EVDO_ONLY = 6, /* EvDo only */
PREF_NET_TYPE_GSM_WCDMA_CDMA_EVDO_AUTO = 7, /* GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL) */
PREF_NET_TYPE_LTE_CDMA_EVDO = 8, /* LTE, CDMA and EvDo */
PREF_NET_TYPE_LTE_GSM_WCDMA = 9, /* LTE, GSM/WCDMA */
PREF_NET_TYPE_LTE_CMDA_EVDO_GSM_WCDMA = 10, /* LTE, CDMA, EvDo, GSM/WCDMA */
PREF_NET_TYPE_LTE_ONLY = 11, /* LTE only */
PREF_NET_TYPE_LTE_WCDMA = 12, /* LTE/WCDMA */
PREF_NET_TYPE_TD_SCDMA_ONLY = 13, /* TD-SCDMA only */
PREF_NET_TYPE_TD_SCDMA_WCDMA = 14, /* TD-SCDMA and WCDMA */
PREF_NET_TYPE_TD_SCDMA_LTE = 15, /* TD-SCDMA and LTE */
PREF_NET_TYPE_TD_SCDMA_GSM = 16, /* TD-SCDMA and GSM */
PREF_NET_TYPE_TD_SCDMA_GSM_LTE = 17, /* TD-SCDMA,GSM and LTE */
PREF_NET_TYPE_TD_SCDMA_GSM_WCDMA = 18, /* TD-SCDMA, GSM/WCDMA */
PREF_NET_TYPE_TD_SCDMA_WCDMA_LTE = 19, /* TD-SCDMA, WCDMA and LTE */
PREF_NET_TYPE_TD_SCDMA_GSM_WCDMA_LTE = 20, /* TD-SCDMA, GSM/WCDMA and LTE */
PREF_NET_TYPE_TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO = 21, /* TD-SCDMA, GSM/WCDMA, CDMA and EvDo */
PREF_NET_TYPE_TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA = 22 /* TD-SCDMA, LTE, CDMA, EvDo GSM/WCDMA */
sleep 5
吗?还有你使用的是哪个 Android 版本? - user3194011sqlite3 ...
而不是settings put global preferred_network_mode 1
?另外,第二个命令是做什么用的? - user3194011.db
中的值,但更改不会在无线电级别生效。您可以通过*#*#4636#*#*
中的“电话信息”进行检查,其中首选网络类型保持不变。而且,重新启动会有点恢复原状。您介意解释一下这些命令的含义吗? - user3194011