C2K雙卡項目,在通話界面輸入“*#06#”嘹承,當有插入電信卡時窗价,會顯示主卡MEID+副卡IMEI;當插入移動/聯(lián)通卡叹卷,沒有插入電信卡時撼港,會顯示2個IMEI坪它。
若需要總是顯示MEID+2個IMEI 或有電信卡插入時也只顯示2個IMEI,以下是具體辦法帝牡。
【在L/M版上】
1往毡、在GSMPhone.java的handlemessage方法switch對應(yīng)的case:EVENT_GET_IMEI_DONE處理過程中,將讀到的mImei保存到SystemProperties中靶溜,可以根據(jù)slotId按如下例子的格式設(shè)鍵值(命名可跟公司名相關(guān)聯(lián))开瞭。這樣在開機初始化之后,GSM Modem兩個protocol對應(yīng)的IMEI就都保存到了SystemProperties中罩息,在phone進程以及第三方APK中都可以通過SystemProperties獲取到它們嗤详。
例如:
if(mPhoneId == PhoneConstants.SIM_ID_1|| mPhoneId = 10) //SIM1
{
Log.d("abc","is SIM1,IMEI is:"+mImei);
SystemProperties.set("gsm.mtk.imei1",mImei);
}
else if(mPhoneId == PhoneConstants.SIM_ID_2 || mPhoneId =11) //SIM2
{
Log.d("abc","is SIM2,IMEI is:"+mImei);
SystemProperties.set("gsm.mtk.imei2",mImei);
}
2、在CDMAPhone.java的handlemessage方法switch對應(yīng)的case:EVENT_GET_DEVICE_IDENTITY_DONE處理過程中瓷炮,將讀到的mMeid保存到SystemProperties中葱色,這樣在開機初始化之后,MEID就都保存到了SystemProperties中娘香,在phone進程以及第三方APK中都可以通過SystemProperties獲取到它們苍狰。
例如:SystemProperties.set("gsm.mtk.meid",mMeid);
注意:由于插卡或版本差異,可能出現(xiàn)找不到對應(yīng)slot的GSMPhone/CDMAPhone對象的情況烘绽,導致無法獲取到對應(yīng)的信息舞痰;
M之后的版本(M0.M1除外)
/vendor/mediatek/proprietary/frameworks/base/packages/FwkPlugin/src/com/mediatek/op/telephony/DefaultDeviceInformationExt.java
case EVENT_GET_IMEI_DONE
下面去保存
保存MEID,可以在
case EVENT_GET_DEVICE_IDENTITY_DONE
該處來進行保存诀姚;
case EVENT_GET_IMEI_DONE:
Rlog.d(TAG, "DefaultDeviceInformationExt handleMessage msg = EVENT_GET_IMEI_DONE");
ar = (AsyncResult) msg.obj;
if (ar.exception != null) {
Rlog.d(TAG, "Null IMEI!!");
break;
}
mImei[mSlotId] = (String) ar.result;
Rlog.d(TAG, "IMEI: " + mImei[mSlotId]);
sendBroadcast();
break;
case EVENT_GET_DEVICE_IDENTITY_DONE:
Rlog.d(TAG, "DefaultDeviceInformationExt " +
"handleMessage msg = EVENT_GET_DEVICE_IDENTITY_DONE");
ar = (AsyncResult) msg.obj;
if (ar.exception != null) {
Rlog.d(TAG, "Null mMeid!! ar.exception = " + ar.exception.toString());
break;
}
String[] respId = (String[]) ar.result;
mMeid = respId[3];
if (mMeid != null) {
mMeid = mMeid.toUpperCase();
}
Rlog.d(TAG, "mMeid: " + mMeid);
sendBroadcast();
break;
3响牛、最后,就根據(jù)顯示的需要赫段,修改SpecialCharSequenceMgr.java的handleDeviceIdDisplay方法呀打,直接通過SystemProperties可以獲取到1個MEID和2個IMEI號,然后再根據(jù)客制化需求糯笙,將其傳到dialog中顯示即可贬丛。