FDN, Fixed Dialler Number,限定拨号。限制手机只可拨出某些电话号码,开启 FDN 功能时只有已储存在电话簿的电话号码和聚急电话可以拨出;
1)修改phb_config.h 中FDN_INDEX_MAX_ENTRIES_COUNT 等于50
2)0B 以前的版本MMI 这边修改MAX_SIM_ENTRIES 等于50.
09b 的版本MMI 这边修改SRV_PHB_XMGNT_SIM_ENTRIES 等于50.
打开FDN,FDN 来电匹配不上号码(09A 及之前).
需要根据号码匹配长度来修改匹配算法:
1,添加下面的比较函数代码:
/*****************************************************************************
* FUNCTION
* compare_string
* DESCRIPTION
* RETURNS
* result index
*****************************************************************************/
S32 compare_string(const S8 *string1, const S8 *string2) {
U32 compare_len,len1,len2;
compare_len = 10;
len1= strlen(string1);
len2= strlen(string2);
len1=(len1<compare_len?len1:compare_len);
/*----------------------------------------------------------------*/
/* Code Body*/
while (len1 > 0)
{
if (string1[len1-1] != string2[len2-1])
{
return string1[len1-1] - string2[len2-1];
}
len1--;
len2--;
if(len2 == 0)
return -1;
}
return 0;
}
2,修改这个函数中的部分代码:mmi_phb_fdn_search_by_number()
.............
else
{
mmi_phb_convert_to_digit_by_store_index(
tempNumber,
PhoneBook[store_index].tel.number,
MAX_PB_NUMBER_LENGTH + 1,
store_index);
}
// 请参考原来的代码修改下面一部分代码
if (!compare_string((S8*) tempNumber, number))
{
return store_index;
}
// 请参考原来的代码修改上面一部分代码
。。。。