1、Log分析过程
从Log看,Modem确实上报了LTE_CA模式
但是
CellularNetworkService注册服务中,已将LTE_CA模式强转为LTE模式
而在LTE显示方面可以看到,LTE显示被LTE_CA override了,表示上层是能沟通监听到LTE_CA
2、根据上面的Log,提出两个疑问点
2.1、Telephony是监听什么事件更新TelephonyDisplayInfo
继续跟踪override来源
由于PS域强制将LTE_CA修改为LTE了,那就此项就不会满足条件
getDataNetworkType() ==
TelephonyManager.NETWORK_TYPE_LTE_CA
能满足条件只有ServiceState.java的
isUsingCarrierAggregation函数
此项是通过载波聚合的带宽来决定的
行 3613: 10-29 17:55:13.043912 1761 1949 D RILJ : [UNSL]<
UNSOL_PHYSICAL_CHANNEL_CONFIG
[{mConnectionStatus=
PrimaryServing,mCellBandwidthDownlinkKhz=20000
,mCellBandwidthUplinkKhz=2147483647,mNetworkType=LTE,mFrequencyRange=MID,mDownlinkChannelNumber=2147483647,mUplinkChannelNumber=2147483647,mContextIds=[100, 201],mPhysicalCellId=65,mBand=1,mDownlinkFrequency=-1,mUplinkFrequency=-1},
{mConnectionStatus=
SecondaryServing,mCellBandwidthDownlinkKhz=20000
,mCellBandwidthUplinkKhz=2147483647,mNetworkType=LTE,mFrequencyRange=MID,mDownlinkChannelNumber=2147483647,mUplinkChannelNumber=2147483647,mContextIds=[100, 201],mPhysicalCellId=0,mBand=1,mDownlinkFrequency=-1,mUplinkFrequency=-1}] [PHONE0]
ServiceState将更新mCellBandwidths来更新CA显示
2.2、SystemUI为什么没有显示4G+图标
SystemUI状态栏MobileSignalController.java
其中
mNetworkToIconLookup = mapIconSets(mConfig);
对应代码在
/android/vendor/mediatek/proprietary/packages/apps/SettingsLib/src/com/android/settingslib/mobile/MobileMappings.java
中,其中决定是是否使用4G+图标,是由配置hideLtePlus决定
3、解决方案
配置默认CarrierConfig
1、hide_lte_plus_data_icon_bool 配置为false
根据带宽情况选择适配,默认是20000
2、
lte_plus_threshold_bandwidth_khz_int LTE载波聚合默认20M,是否需要配置看4G+带宽