微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt6735如何屏蔽接收来自某些信道的小区广播消息

mt6735如何屏蔽接收来自某些信道的小区广播消息

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
如何屏蔽接收来自某些信道的小区广播消息
[SOLUTION]
客户发现 4370~4382 的小区广播信道被打开了,想屏蔽这些信道的小区广播消息,可以参考如下设置:

1. 在SMSCbConstants.java(alps/php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks/opt/telephony/src/java/com/android/internal/telephony/GSM) 中添加宏:
public static final int MESSAGE_ID_CBDD_IDENTIFIER_MIN = 0x1112; // add by mtk for 4370
public static final int MESSAGE_ID_CBDD_IDENTIFIER_MAX = 0x111E; // add by mtk for 4382

2. 在SmsCbHeader.java(alps/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm) 中添加个判断:
public SmsCbHeader(byte[] pdu, boolean isEtwsPrimary) throwsIllegalArgumentException{
……
mMessageIdentifier = ((pdu[2] & 0xff)<<8)| (pdu[3] & 0xff);
// add by mtk for 4370 ~ 4382
if(mMessageIdentifier >= SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MIN &&mMessageIdentifier <= SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MAX )
{
return ;
}
// add by mtk for 4370 ~ 4382
}

3. 在 GsmCellBroADCastHandler.Java 中对 handleGsmBroadcastSms() 方法做如下修改:
private SmsCbMessage handleGsmBroadcastSms(AsyncResult ar) {
……
SmsCbHeader header = new SmsCbHeader(receivedPdu, false);
// add by mtk for 4370 ~ 4382
if(header.getServiceCategory() >=
SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MIN &&
header.getServiceCategory() <=
SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MAX)
{
return ;
}
// add by mtk for 4370 ~ 4382
……
}

注意:上述做法只是不接收这些信道的广播消息,但是 4370~4382 信道仍然是打开的。如果需要关闭这些信道,可以参考下面这一步。

4. 如果是客户预置的信道,请检查NVRAM_EF_CB_DEFAULT_CH_LID和NVRAM_EF_CB_CH_INFO_LID中并去掉。如果是非客户预置的信道,那就是 SIM 卡中预置的。可以申请打开宏 __CB_CHANNEL_ONLY_STORED_IN_NVRAM__ ,使手机启动时,不去读取 SIM 卡中保存的信道。这样,这些信道就不会打开了。

注意:目前没有提供支持单独关闭某些广播信道的 AT 命令。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top