1.电话簿APPLET中的变量
IVectorModel *m_contact_iv; //local contacts 此变量又指向全局变量g_contact_iv
IVectorModel *m_contact_iv_ruim; //sim contacts
2.其他辅助变量
Pbk_TotaCidCount
Pbkciddata
Pbknumcompare
g_email_iv
二、初始化电话簿的函数:
PhoneBookInitIndex(); 初始化本机记录
PhoneBookInitUimIndex(); 初始化UIM卡记录
三、分析
1
BREW按分类来管理电话簿,又分为AEE类别和OEM类别。其对应关系键变量:g_mixCat[]
获取电话簿记录时,按照AEE记录来列举,每个记录有N笔记录。例如:
IADDRBOOK_EnumRecInit(piAddrBook, g_mixCat[i].addrCat, AEE_ADDRFIELD_NONE, NULL, 0) ; 列举一个AEE类别的记录
addrRec = IADDRBOOK_EnumNextRec(piAddrBook); 循环获取该类别里的每一个记录
2.在获取到一笔记录时,加入到接口g_contact_iv中.
按照保存在该笔记录信息中的head.indexx[]中的拼音顺序寻找插入位置。
3.每一笔记录中变量的含义:
typedef struct _ContactInfo
{
COM_HEAD head; //name & phone or email 姓名,号码,拼音
uint16 m_id; // Database ID of this contact 此笔记录在电话簿接口中的AEE某一类别中的base ID(在BREW层面的)
AEEAddrCat m_class; // Contact classification, one of 与AEE类别相对应的,在OEM层来说的类别。对应关系见g_mixCat[]中
uint16 m_fldNumberId; // field id of the found number 第一个获取到的电话号码类别(手机?家庭?公司?)
}ContactInfo;
4.
Pbk_TotaCidCount----所有的电话号码个数(手机,家庭,公司等号码都算作一个)
Pbkciddata---按照该记录在g_contact_iv[]中的位置排序的数据
typedef struct _PbkCidInitStr
{
uint16 recid; 此笔数据在g_contact_iv中的pos位置
uint16 numtype; 号码的AEE类别(手机?家庭?公司?)
AECHAR numstr[FLDLEN_NUMBER+1]; 号码
}PBKCidInitStr;
Pbknumcompare---按照号码的大小顺序排序的数据结构
typedef struct _PBKNumCompare
{
uint16 idInPbm; // the id can get name directly 此笔记录在电话簿接口中的AEE某一类别中的base ID(在BREW层面的)
uint8 charnum[FLDLEN_NUMBER+1]; 号码
}PBKNumCompare;
g_email_iv—邮件地址的接口,每个节点包含2个信息:该邮件在AEE层的base ID,以及邮件地址。
BREW:电话簿管理变量
原创wx5ffd8ca34ea45 ©著作权
©著作权归作者所有:来自51CTO博客作者wx5ffd8ca34ea45的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:关于蓝牙耳机通话,切换声音路径
下一篇:嵌入式程序员基本知识二
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C#面向对象练习-电话簿管理器
电话簿管理器练习:首先为了代码规范,创建类文件。Data.csusing System;/
C# csharp 数组 i++ ide