联通规范双卡版本动态安装app 适配问题

   双卡版本,在M,N版本之后都只是显示一个STK APP图标。但是联通规范要求双卡版本需要分开显示STK APP,也就是要显示两个STK APP图标
 并且要求插卡式显示,拔卡时隐藏
 MTK的机制是动态安装STK应用,插卡时安装,拔卡时卸载
打开OP02后联通定制版双卡时STK应用会由StkAppService动态安装app
 
vendor/mediatek/proprietary/packages/apps/Stk/
String optr = SystemProperties.get("ro.operator.optr");
  if (optr != null && !("OP02".equals(optr))) {
        appInstaller.unInstall(mContext, i);
     }
 
两个SAT应用程序是共用一个packageName
private static final String STK1_LAUNCHER_ACTIVITY = "com.android.stk.StkLauncherActivityI";
private static final String STK2_LAUNCHER_ACTIVITY = "com.android.stk.StkLauncherActivityII";
 
     switch (sim_id) {
         case PhoneConstants.SIM_ID_1:
              classname = STK1_LAUNCHER_ACTIVITY;
               break;
          case PhoneConstants.SIM_ID_2:
                classname = STK2_LAUNCHER_ACTIVITY;
                break;
 
两个应用同一个包名,这样的机制会影响其他模块
 
MTK做过适配,/vendor/mediatek/proprietary/operator/OP02/packages/apps/Plugins/
但适配的是MTK原生应用的,所以这里是注掉了
 
GNSPR#66307问题
主题原先也是通过包名区分,在显示ICON时有误,主题做了适配 通过包名+类名来区分
桌面也需要出一个CU适配版本,其他模块可能影响到的也要注意一下CU版本的STK应用
现在需要和桌面一起看一下,现在显示的很混乱,没有规律
 

结论:


MTK 联通CU版 STK 应用 适配方案是 卡1 和卡2 分开显示,并且随着热插卡动态显示隐藏(联通规范要求),然后发送ACTION_PACKAGE_CHANGED广播,Launcher收到广播后做出隐藏或显示,
但是在发送广播时,我们的Launcher 无法区分卡1还是卡2,因为插拔卡会有几种情况的广播:
1开机后两张卡都插得,拔出卡1,如果卡2信号没初始化,那卡1就正常发一个广播,卡2 没变化 ,Launcher正常处理
2开机后两张卡都插得,拔出卡1,如果卡2信号初始化,两卡共执行一条隐藏广播,卡2在初始化完后再重新显示,发送卡2显示广播 ,Launcher收到广播后通过包名,再到从系统找类名,由于发送广播太多,Launcher无法区分


现在只能是通过克隆一份STK 代码  改为STK2 ,包名为com.android.stk2, 这样暂时解决

 
参考
[FAQ19483][SAT]双卡情况下如何显示两个STK icon图标
[FAQ05657][SAT]如何动态修改SIM卡应用名称
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值