[FAQ10001][Audio Profile]打开双卡铃声设置功能后,设置卡1,卡2的铃声之后,将两张卡交换卡槽,铃声也会交换

[DESCRIPTION]
 
1,打开MTK_MULTSIM_RINGTONE_SUPPORT,即打开双卡来电铃声分别设置的功能;
2,卡槽1和卡槽2分别插SIMA和SIMB,设置卡1的铃声为aaa,设置卡2的铃声为bbb;
3,关机,将2张sim卡互换卡槽,即SIMA插在卡槽2,SIMB插在卡槽1上;
4,开机,进入情境模式查看来电铃声,卡1显示的是bbb,卡2显示的是aaa;也就是说看起来设置的铃声跟着卡走。
 
如何设置成设置铃声时,设置卡1的铃声就是给插在卡槽1的SIM卡使用,设置卡2的铃声就是给插在卡槽2的SIM卡使用?
 
[SOLUTION]
SIM卡Info说明:
双卡来电铃声的设置,是根据SIM ID的不同而设置不同的ringtone,我们是根据SIM的ICCID(Integrate circuit card identity 集成电路卡识别码,固化在手机SIM卡中)不同为其分配一个固定的ID,这个ID在一部手机上是固定不变的,它可能是1,2,3,4,5...
 
1,假设手机上卡槽1,卡槽2分别插着SIMA,SIMB:
在siminfo table:
对于SIMA,根据它的ICCID创建一笔SIM Info Record,SIM ID是1,那么设置这张卡的来电铃声的键值为mtk_audioprofile_general_ringtone_sim_id_1,假设设置的铃声title为aaa;
对于SIMB,根据它的ICCID创建新的一笔SIM Info Record,SIM ID是2(SIM ID呈递增),那么设置这张卡的来电铃声的键值为mtk_audioprofile_general_ringtone_sim_id_2,假设设置的铃声title为bbb;
 
2,关机两张卡互换位置之后,开机,SIMA虽然在卡槽2,但是通过它的ICCID在原来simInfo table找到它的SIM ID是1,所以读取这张卡的铃声的key值仍为mtk_audioprofile_general_ringtone_sim_id_1,取到的还是aaa,同理SIMB也是取到mtk_audioprofile_general_ringtone_sim_id_2,所以看起来设置的铃声是跟随着卡走的。
 
3,若把SIMB拔了,在卡槽1上插新的SIMC,则根据它的ICCID创建新的一笔SIM Info Record,SIM ID是3(SIM ID呈递增),那么设置这张卡的来电铃声的键值为mtk_audioprofile_general_ringtone_sim_id_3;
4,以此类推,只要SIM卡不同,ICCID不同,它在这部手机上的sim ID就不同,但是一旦手机有记录这张卡的ICCID和sim ID的记录,这张卡在手机上的sim ID就是固定的不变,不根据插的卡槽不同而不同。
 
 
如何设置成设置铃声时,设置卡1的铃声就是给插在卡槽1的SIM卡使用,设置卡2的铃声就是给插在卡槽2的SIM卡使用?
 
 
只要将设置时取的SIM ID改成取SIM Slot即可,修改如下:

1Editprofile.javaGeminiUtils.EXTRA_SIMID改成 GeminiUtils.EXTRA_SLOTID

 

@Override

    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        Xlog.d(TAG, "onActivityResult " + "requestCode " + requestCode + " " + resultCode + "resultCode");

        if (requestCode == GeminiUtils.REQUEST_SIM_SELECT) {

            if (resultCode == Activity.RESULT_OK) {

                mSimId =(long) data.getIntExtra(GeminiUtils.EXTRA_SLOTID, -1);

                setRingtoneSIMId(mSimId);

            }

            Xlog.v(TAG, "Select SIM slot id = " + mSimId);

        }

    }

   

2CallNotifier.java中将mSimInfoId改成mSimSlotId

public Uri getDefaultRingtoneUri(Call ringCall) { ....

if (PhoneUtils.getSimInfoByCall(ringCall) != null) {

            simId = (long)PhoneUtils.getSimInfoByCall(ringCall).mSimSlotId;

        }

 

KK版本与上面稍有不同,请如下修改

1. Editprofile.java将GeminiUtils.EXTRA_SIMID改成 GeminiUtils.EXTRA_SLOTID,并且需要+1
  即:
 mSimId =(long) data.getIntExtra(GeminiUtils.EXTRA_SLOTID, -1)+ 1;
2. 将CallNotifier.java中将mSimInfoId改成mSimSlotId,并且需要+1
  即: simId = (long)PhoneUtils.getSimInfoByCall(ringCall).mSimSlotId + 1;

3. 将packages/apps/Settings/src/com/mediatek/audioprofile/DefaultRingtonePreference.java中,onClick()中的
if (FeatureOption.MTK_MULTISIM_RINGTONE_SUPPORT && simNum == SINGLE_SIMCARD) {
        setSimId(simList.get(0).mSimId);
 }
修改为:
if (FeatureOption.MTK_MULTISIM_RINGTONE_SUPPORT && simNum == SINGLE_SIMCARD) {
      setSimId((long)(simList.get(0).mSlot) + 1);
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值