引起这个问题的原因是:因为卡中的EXT1存在一些无效的记录,占用了EXT1的个数,所以会导致用户不能再添加新的长号码;
而换到对比机上能添加长号码,是因为对比机对这些无效的记录做了处理,使得终端用户可以继续添加添加长号码;
请修改下面的代码,也可以达到继续添加长号码的需求:
在phb_sim_read_cnf()中修改:
else if ((control_block->primary_ID == FILE_EXT1_IDX) ||
#ifdef __USIM_SUPPORT__
(control_block->primary_ID == FILE_G_EXT1_IDX) ||
#endif
(control_block->primary_ID == FILE_EXT2_IDX) ||
(control_block->primary_ID == FILE_EXT3_IDX) ||
(control_block->primary_ID == FILE_EXT4_IDX))
{
kal_uint16 len;
ef_ext_type *ef_ext;
ef_ext = (ef_ext_type*) sim_read_cnf->data;
if ((len = sim_read_cnf->length) > sizeof(ef_ext))
{
len = sizeof(ef_ext_type);
}
//code change begin.....
/* if (!is_empty((kal_uint8*) ef_ext, len))
{
control_block->data = (kal_uint8*) ef_ext;
}
else
{
control_block->data = NULL;
}*/
control_block->data = NULL;
//code change end.....
phb_IO_return(control_block, ilm_ptr, KAL_TRUE);
}