• [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可以分别设置不同的默认网络,修改位置和方法与上述基本相同。

  • 相关阅读:
    软件技术发展的几个阶段
    MOOONscheduler核心设计图(初稿)
    Write Read Writeln Readln console
    Win32Check对Windows操作 注销 重新启动 关闭计算机_Win32Check
    WM_nclButtonDblClk响应标题栏事件_message
    使用 “+”号实现多个字符串的连接
    TRichEdit_控制TRichEdit组件滚动
    取得字符串中指定的字符str[]
    undo RichEdit1
    使Memo 原有的右键功能失效 _OnContextPopup
  • 原文地址:https://www.cnblogs.com/lialong1st/p/11687296.html
Copyright © 2020-2023  润新知