[RK3399] 修改移動網絡默認為4G


CPU:RK3399

系統:Android 7.1

 

現在手機卡都默認是 4G 網路,但是源碼中默認的還是 3G網絡,每次都要手動改到 4G。

下面在源碼中就直接將默認網絡改為4G。

PREFERRED_NETWORK_MODE 變量就是開機后系統設置中調用的默認網絡類型

SystemProperties.getInt

第一個參數是鍵值,開機后可以在 adb 中通過 getpeop 獲取到,第二個參數是默認值

功能是如果有鍵值,就將鍵值對應的整型返回,若沒有鍵值,就將默認值返回。

 

RK3399 的系統開機后,在 adb 中通過指令 getprop 獲取不到 "ro.telephony.default_network",因此會將 NETWORK_MODE_WCDMA_PREF 返回。

NETWORK_MODE_WCDMA_PREF 就是 3G 網絡

我們希望默認為 4G,就該改變方法中調用的默認值,可選的值很多,可以根據自身需求修改。

第一種方式是直接修改優先網絡與配置文件中的一致

 

diff --git a/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java b/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.jav
index a91e9be..4571221 100644
--- a/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -161,7 +161,7 @@ public interface RILConstants {
     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);
+            NETWORK_MODE_LTE_GSM_WCDMA);
 
     int BAND_MODE_UNSPECIFIED = 0;      //"unspecified" (selected by baseband automatically)
     int BAND_MODE_EURO = 1;             //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)

 

第二種方式是修改優先網絡與配置文件中的不一致

diff --git a/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java b/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.jav
index a91e9be..4571221 100644
--- a/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -161,7 +161,7 @@ public interface RILConstants {
     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);
+            NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
 
     int BAND_MODE_UNSPECIFIED = 0;      //"unspecified" (selected by baseband automatically)
     int BAND_MODE_EURO = 1;             //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
diff --git a/packages/services/Telephony/res/values/strings.xml b/packages/services/Telephony/res/values/strings.xml
index bcad6f7..b3720e2 100644
--- a/packages/services/Telephony/res/values/strings.xml
+++ b/packages/services/Telephony/res/values/strings.xml
@@ -665,7 +665,7 @@
         <item>@string/network_2G</item>
     </string-array>
     <string-array name="enabled_networks_values" translatable="false">
-        <item>"9"</item>
+        <item>"10"</item>
         <item>"0"</item>
         <item>"1"</item>
     </string-array>

 

對於 5.1 的系統,卡1和卡2可以分別設置不同的默認網絡,修改位置和方法與上述基本相同。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM