MTK 手机开发小技巧(3)

修改默认输入法

方法1:

common_mmi_cache_config.c

 

NVRAM_SETTING_PREFER_INPUT_METHOD 默认值

 

延伸:

common_mmi_cache_byte

默认语言:NVRAM_SETTING_LANG

默认城市:CURRENT_CITY

默认java的网络参数配置:

    BYTE_ENTRY(NVRAM_JAVA_SETTING_PROF_ID, 0x02),

    BYTE_ENTRY(NVRAM_JAVA_SETTING_PROF2_ID, 0x02),

默认wap 网络参数配置:

    SHORT_ENTRY(NVRAM_WAP_PROF_ACTIVE_WAP_PROFILE_INDEX, 0x02, 0x02),  

    SHORT_ENTRY(NVRAM_WAP_PROF_ACTIVE_MMS_PROFILE_INDEX, 0x02, 0x02),  

 

方法2:

Nv项默认值为0xff,然后nv项版本号升级

SetInputMethodFromNVRAM函数中修改

 

NVRAM_SETTING_PREFER_INPUT_METHOD

 

 

修改蓝牙名称

BTMMICM.c

MMI_BT_DEF_HOST_BT_NAME= { 'M', 'T', 'K', 'B', 'T', 'D', 'E', 'V', 'I', 'C', 'E', '\0' };

 

NVRAM_EF_BT_INFO_LID

#define NVRAM_EF_BT_INFO_LID_VERNO                      "011" //modify

 

(mmi_bth_init—> mmi_bth_init_freshdev_defaultà mmi_bth_nvram_write_info)

 

号码匹配

NVRAM_EF_SYS_CACHE_OCTET_DEFAULT

 

卡1/卡2是否插卡

        MTPNP_AD_Get_Card1Status() != MTPNP_AD_SIMCARD_ABSENT

        MTPNP_AD_Get_Card2Status() != MTPNP_AD_SIMCARD_ABSENT)

 

卡1/卡2是否可用

E_MTPNP_AD_SIMCARD_USABLE_SIDE MTPNP_AD_Get_UsableSide(void);

 

typedef enum

{

MTPNP_AD_DUALSIM_UNUSABLE = MTPNP_AD_FLIGHT,

MTPNP_AD_SIMCARD1_NOSIM_USABLE = MTPNP_AD_CARD1,

MTPNP_AD_SIMCARD2_NOSIM_USABLE = MTPNP_AD_CARD2,

MTPNP_AD_SIMCARD1_USABLE=MTPNP_AD_CARD1| MTPNP_AD_SIMCARD_VALID,

MTPNP_AD_SIMCARD2_USABLE=MTPNP_AD_CARD2| MTPNP_AD_SIMCARD_VALID,

MTPNP_AD_DUALSIM_USABLE= (MTPNP_AD_CARD1 | MTPNP_AD_SIMCARD_VALID) + (MTPNP_AD_CARD2 | MTPNP_AD_SIMCARD_VALID)

} E_MTPNP_AD_SIMCARD_USABLE_SIDE;

 

If(MTPNP_AD_Get_UsableSide() >= MTPNP_AD_SIMCARD1_USABLE)

 

 

判断网络:

Public Land Mobile Network -- 公共陆地移动(通信)网络

 

判断网络ID

卡1:memcmp(gHomePLMNNum, "51011", 5)

卡2:memcmp(gHomePLMNNum_2, "51011", 5)

 

gPLMN   手机卡1当前接入网络的网络ID

gPLMN_2 手机卡2当前接入网络的网络ID

 

中国移动:46000  46002

中国联通:46001

 

IMEI号(International Mobile Station Equipment Identity -- 国际移动台设备识别):手机设备的ID 又称手机串号,国际标准查询指令 *#06#

用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码

 

static kal_uint8 const NVRAM_EF_IMEI_IMEISV_DEFAULT[] =

{

/*355093016307403*/

    0x53, 0x05, 0x39, 0x10, 0x36, 0x70, 0x04, 0xF3, /*The IMEI is 15 digit */ 

    0x87,       /* Software version number */

    0x01,        /* Padding */

 

    0x53, 0x05, 0x39, 0x10, 0x36, 0x70, 0x04, 0xF1, /*The IMEI is 15 digit */

    0x87,       /* Software version number */

    0x01        /* Padding */

 

};

 

获得IMEI号:消息MSG_ID_MMI_NW_GET_IMEI_REQ,目的task,消息RSP响应函数

static void APPLE_OS_RequestIMEIRsp(void *msg_buf)

{

    mmi_nw_get_imei_rsp_struct *imeiresponse = (mmi_nw_get_imei_rsp_struct*) msg_buf;

      

    if ((imeiresponse) && (imeiresponse->result == 1))

       {

       memset(gIMEIBuf,0,16+1);

       memcpy((char *)gIMEIBuf, (char *) imeiresponse->imei,16);

       }

}

void APPLE_OS_RequestIMEI()

{

    MYQUEUE Message;

    Message.oslMsgId = MSG_ID_MMI_NW_GET_IMEI_REQ;

    Message.oslDataPtr = NULL;

    Message.oslPeerBuffPtr = NULL;

    Message.oslSrcId = MOD_MMI;

    Message.oslDestId = MOD_L4C;   /* MOD_L4C _2*/

    OslIntMsgSendExtQueue(&Message);

SetProtocolEventHandler(APPLE_OS_RequestIMEIRsp, MSG_ID_MMI_NW_GET_IMEI_RSP);

 

/*SetSlaveProtocolEventHandler(APPLE_OS_RequestIMEIRsp, MSG_ID_MMI_NW_GET_IMEI_RSP);*/

 

}

IMSI号(国际移动用户识别码(IMSI) International Mobile Subscriber Identity ):卡的ID,手机卡的唯一识别号是imsi号,而不是手机号,运营商后台数据库维护imsi号和手机号的一一映射,所以可以做到换卡不换号

 

MSI共有15位,其结构如下:
MCC+MNC+MIN
MCC:Mobile Country Code,移动国家码,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,共2位,联通CDMA系统使用03,一个典型的IMSI号码为460030912121001;

 

获得IMSI号:消息PRT_GET_IMSI_REQ(MSG_ID_MMI_SMU_GET_IMSI_REQ):目的task,消息RSP

void mr_sim1_get_imsi_req(void)

{

    /*----------------------------------------------------------------*/

    /* Local Variables                                                */

    /*----------------------------------------------------------------*/

    MYQUEUE Message;

 

    Message.oslSrcId = MOD_MMI;

    Message.oslDestId = MOD_L4C;

    Message.oslMsgId = PRT_GET_IMSI_REQ;

    Message.oslDataPtr = NULL;

    Message.oslPeerBuffPtr = NULL;

    OslMsgSendExtQueue(&Message);

    SetProtocolEventHandler(mr_sim_get_imsi_rsp, PRT_GET_IMSI_RSP);

}

 

static void mr_sim_get_imsi_rsp(void *msg_p)

{

    mmi_smu_get_imsi_rsp_struct *local_data_p = (mmi_smu_get_imsi_rsp_struct*) msg_p;

    kal_prompt_trace(MOD_MMI,"mr_sim_get_imsi_rsp local_data_p->result=%d",local_data_p->result); 

    if (local_data_p->result == ST_SUCCESS)

    {

       memset(gIMSI,0,sizeof(gIMSI));

       memcpy(gIMSI,local_data_p->imsi+1, 16);

    }

   

    kal_prompt_trace(MOD_MMI,"gIMSI=%s",gIMSI);

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiangyu912/archive/2010/07/11/5721672.aspx

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(900) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值