54-Android之Stk无内容图标不显示
平台: Android10 MTK6739
客户发现,某些SIM卡插入设备的时候,会显示Stk应用的图标,但是点击Stk应用图标,会提示无内容,不会打开Stk应用。
因此,客户要求当Stk无内容时,不要显示Stk应用图标。
vendor/mediatek/proprietary/packages/apps/Stk/src/com/android/stk/StkAppService.java
private void handleCmd(MtkCatCmdMessage cmdMsg, int slotId) {
//..... 省略
switch (cmdMsg.getCmdType()) {
//..... 省略
case SET_UP_MENU:
// ......
mStkContext[slotId].mCmdInProgress = false;
mStkContext[slotId].mMainCmd = mStkContext[slotId].mCurrentCmd;
mStkContext[slotId].mCurrentMenuCmd = mStkContext[slotId].mCurrentCmd;
mStkContext[slotId].mCurrentMenu = cmdMsg.getMenu();
// ......
if (removeMenu(slotId)) {
int i = 0;
mStkContext[slotId].mCurrentMenu = null;
mStkContext[slotId].mMainCmd = null;
appInstaller.unInstall(mContext, slotId);
StkAvailable(slotId, STK_AVAIL_NOT_AVAILABLE);
//Check other setup menu state. If all setup menu are removed, uninstall apk.
for (i = PhoneConstants.SIM_ID_1; i < mSimCount; i++) {
if (i != slotId && mStkContext[i].mSetupMenuState != STATE_NOT_EXIST) {
break;
}
}
if (i == mSimCount) {
//appInstaller.unInstall(mContext);
}
} else if (!sim_radio_on || sim_locked) {
// ......
StkAvailable(slotId, STK_AVAIL_NOT_AVAILABLE);
} else {
// 此处添加 begin
if (MtkCatService.getSaveNewSetUpMenuFlag(slotId) &&
mStkContext[slotId].mMainCmd != null &&
isMenuValid(mStkContext[slotId].mMainCmd.getMenu())) {
LogUtils.d(LOG_TAG, "SET_UP_MENU AppInstaller.install");
appInstaller.install(mContext, slotId);
StkAvailable(slotId, STK_AVAIL_AVAILABLE);
}
// 此处添加 end
}
if (mStkContext[slotId].mMenuIsVisible) {
//......
launchMenuActivity(null, slotId, false);
}
break;
//...... 省略
}
private void updateStkState(int subId, int imsRadioTech){
StkAppInstaller appInstaller = StkAppInstaller.getInstance();
switch(imsRadioTech)
{
case ImsRegistrationImplBase.REGISTRATION_TECH_LTE:
case ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN:
// 此处添加 begin
if (MtkCatService.getSaveNewSetUpMenuFlag(subId) &&
mStkContext[subId].mMainCmd != null &&
isMenuValid(mStkContext[subId].mMainCmd.getMenu())) {
LogUtils.d(LOG_TAG, "updateStkState AppInstaller.install subId: " + subId + ", imsRadioTech: " + imsRadioTech);
appInstaller.install(mContext, subId);
StkAvailable(subId, STK_AVAIL_AVAILABLE);
}
// 此处添加 end
break;
default:
if(isAirplaneModeOn(mContext)) {
appInstaller.unInstall(mContext, subId);
StkAvailable(subId, STK_AVAIL_NOT_AVAILABLE);
}
break;
}
}