微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > Statusbar中的 No service 提示框客制化为不显示

Statusbar中的 No service 提示框客制化为不显示

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
当插入某些运营商的卡(比如哈萨克斯坦ACTIV(40102)卡)时,状态栏会有No service提示框,点击提示框会弹出提示框到主屏幕,当用户点击OK或
CANCEL时,提示框不消失。用户不希望看到这种提示框。截图如下:



[SOLUTION]
这个提示框是SIM卡上报的 SET UP IDLE MODE TEXT 命令中的text string 为 ""(因为text length
为1) 而非 null 导致的。
StkAppService收到 SET UP IDLE TEXT 命令后,调用 launchIdleText()处理。在其中会去判断msg
中的 text 是否为null。如果为null,依据spec 规定会直接 cancel 掉 notification,在
statusbar 中就不会有提示。但是由于此时的 text string为"",所以,statusbar 中会有 No
Service 的提示框。这个本身是正常的。
鉴于这种情况,如果不想要在status bar 中 show 出这个 No Service 的提示框,就需要做客制化

有两种修改方法:
方法一、
请尝试修改
alps\php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks\opt\telephony\src\java\com\android\internal\telephony\cat\CommandParams
Factory.Java 的 processSetUpIdleModeText()方法,将
ComprehensionTlv ctlv = SearchForTag(ComprehensionTlvTag.TEXT_STRING, ctlvs);
if(ctlv != null){
textMsg.text = ValueParser.retrieveTextString(ctlv);
}
修改成:
ComprehensionTlv ctlv = SearchForTag(ComprehensionTlvTag.TEXT_STRING, ctlvs);
if(ctlv != null){
if(ctlv.getLength() == 1){
textMsg.text = null;
}else{
textMsg.text = ValueParser.retrieveTextString(ctlv);
}
}
方法二、
在 mediatek\packages\apps\stk1\src\com\android\stk\StkAppService.java 文件(L版本上则是
alps\vendor\mediatek\proprietary\packages\apps\stk1\src\com\android\stk\StkAppService.j
ava)中的 launchIdleText(...)方法中增加 cancel 掉 notification 的判断条件。
修改前:


修改后:

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

网站地图

Top