5G图标显示分析二

本文介绍了在5G手机中,针对MTK和高通平台如何通过接口获取和判断网络带宽,以便在特定场景下显示5G+。MTK使用ServiceState.java中的getCellBandwidths方法,而高通平台则在QMI代码中进行判断,根据带宽类型决定SystemUI的图标显示。
摘要由CSDN通过智能技术生成

1、需求

        客户需求,5G手机在部分场景需要显示成5G+。当带宽大于50M时,显示5G+。

2、Android对应接口

2.1、MTK 平台

04-24 09:55:15.854  1917  2026 D RILJ    : [UNSL]< UNSOL_PHYSICAL_CHANNEL_CONFIG [{mConnectionStatus=PrimaryServing,mCellBandwidthDownlinkKhz=15000,mCellBandwidthUplinkKhz=0,mNetworkType=LTE,mFrequencyRange=MID,mDownlinkChannelNumber=2147483647,mUplinkChannelNumber=2147483647,mContextIds=[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 2],mPhysicalCellId=487,mBand=0,mDownlinkFrequency=0,mUplinkFrequency=0}, {mConnectionStatus=SecondaryServing,mCellBandwidthDownlinkKhz=80000,mCellBandwidthUplinkKhz=0,mNetworkType=NR,mFrequencyRange=HIGH,mDownlinkChannelNumber=2147483647,mUplinkChannelNumber=2147483647,mContextIds=[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 2],mPhysicalCellId=19,mBand=0,mDownlinkFrequency=0,mUplinkFrequency=0}] [PHONE0]

可以通过ServiceState.java的getCellBandwidths获取对应带宽

public int[] getCellBandwidths() {
    return mCellBandwidths == null ? new int[0] : mCellBandwidths;
}

2.2、高通平台

        高通平台Log中找了一圈,也没找到对应判断带宽的接口,最后在QMI中中找到对应代码

    rildata::NrIconEnum_t convertUiMask(const dsd_sys_ui_mask_v01& ui_mask) {
    if (0 != (QMI_DSD_UI_MASK_3GPP_5G_UWB_V01 & ui_mask)) {
      Log::getInstance().d("[DSDModemEndPointModule]: convertUiMask UWB");
      return rildata::NrIconEnum_t::UWB;
    } else if (0 != (QMI_DSD_UI_MASK_3GPP_5G_BASIC_V01 & ui_mask)) {
      Log::getInstance().d("[DSDModemEndPointModule]: convertUiMask BASIC");
      return rildata::NrIconEnum_t::BASIC;
    } else {
      Log::getInstance().d("[DSDModemEndPointModule]: convertUiMask NONE");
      return rildata::NrIconEnum_t::NONE;
    }
  } 

SystemUI显示逻辑

private static MobileIconGroup getNrIconGroup(int nrIconType , int phoneId) {
        MobileIconGroup iconGroup = TelephonyIcons.UNKNOWN;
        switch (nrIconType){
            case NrIconType.TYPE_5G_BASIC:
                iconGroup = TelephonyIcons.FIVE_G_BASIC;
                break;
            case NrIconType.TYPE_5G_UWB:
                iconGroup = TelephonyIcons.FIVE_G_UWB;
                break;
        }
        return iconGroup;
    }

当QM上报UWB时表示为大带宽,显示5g+

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值