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

xiaoxiao2021-02-28  204

[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);  }

转载请注明原文地址: https://www.6miu.com/read-77318.html

最新回复(0)