1 / 14

BREW TM Developer Training

第十七章 地址簿的使用. BREW TM Developer Training. 主要内容. 地址簿接口的创建 有关记录的分类 地址簿记录的介绍 修改记录中的字段 为地址簿增加记录 从地址簿中获取记录 有关地址簿应用的一些常见问题. 使用地址簿的准备. 接口的创建 在应用的 MIF 文件中选定“ Access to Address Book” 不支持多地址簿操作. 记录的分组. 手机地址簿中的记录分组 typedef uint16 AEEAddrCat; 预先定义好的分组 AEE_ADDR_CAT_NONE 没有分组

uta-jarvis
Download Presentation

BREW TM Developer Training

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十七章 地址簿的使用 BREWTMDeveloper Training

  2. 主要内容 • 地址簿接口的创建 • 有关记录的分类 • 地址簿记录的介绍 • 修改记录中的字段 • 为地址簿增加记录 • 从地址簿中获取记录 • 有关地址簿应用的一些常见问题

  3. 使用地址簿的准备 • 接口的创建 • 在应用的MIF文件中选定“Access to Address Book” • 不支持多地址簿操作

  4. 记录的分组 • 手机地址簿中的记录分组 • typedef uint16 AEEAddrCat; • 预先定义好的分组 • AEE_ADDR_CAT_NONE 没有分组 • AEE_ADDR_CAT_PERSONAL 私人记录分组 • AEE_ADDR_CAT_BUSINESS 商务记录分组 • AEE_ADDR_CAT_USER_DEFINED 手机厂商定义的记录分组的起点 • AEE_ADDR_CAT_ERR手机厂商定义的记录分组的最大值 • 手机厂商定义的记录分组 • 必须介于AEE_ADDR_CAT_USER_DEFINED 和AEE_ADDR_CAT_ERR两个值之间

  5. 记录的分组示例 if(AEE_SUCCESS == IADDRBOOK_EnumCategoryInit(pMe->m_pIAddrBook)) // initialize the enumeration operation { AEEAddrCat ac; // stores enumerated category while(IADDRBOOK_EnumNextCategory(pIAddrBook, &ac)) // enumerate all supported categories { // perform some action... } }

  6. 地址簿记录 • 地址簿记录中的数据存储在手机厂商定义的一系列字段中,具体的字段在数据结构AEEAddrField 中 typedef structure { AEEAddrFieldID fID; // label of the IAddrBook field AEEAddrFieldType fType; // datatype stored in this field (such as FT_STRING) void * pBuffer; // pointer to the actual data uint16 wDataLen; // length of the data (bytes) } AEEAddrField;

  7. 获得记录字段的类型 // initialize the enumeration operation if(AEE_SUCCESS == IADDRBOOK_EnumFieldsInfoInit(pIAddrBook, addressCat)) { // stores enumerated field info AEEAddrFieldInfo afi; // enumerate all supported fields while(IADDRBOOK_EnumNextFieldsInfo(pIAddrBook, &afi)) { // perform some action... } }

  8. 修改记录中的字段 • IAddrRec 可以实现对地址记录中个别字段的访问。 它提供以下功能: • 为记录添加新字段 • 更新现有地址记录的字段 • 删除现有地址记录的字段 • 更改记录

  9. 增加一个字段的方法示例 AEEAddrField aField; AECHAR sCPNum[MYMAXPHONELEN]; // convert char to AECHAR STRTOWSTR("13301330133", sCPNum, sizeof(sCPNum)); aField.fID = AEE_ADDRFIELD_PHONE_CELL; // fill in cell phone field aField.fType = AEEDB_FT_PHONE; aField.pBuffer = sCPNum; aField.wDataLen = WSTRLEN(sCPNum); // add field to record if(AEE_SUCCESS != IADDREC_AddField(pIAddRec, &aField)) { // error condition }

  10. 增加记录到地址簿 • 要准备好该记录的各个字段 • 使用的主要方法是IADDRBOOK_CreateRec()函数 // create record if(NULL == (pIAddrRec = IADDRBOOK_CreateRec( pIAddrBook, AEE_ADDR_CAT_NONE, aFields, MYNUMFIELDS))) { / / record create fail, check IADDBOOK_GetLastError() }

  11. 地址簿中记录的获取 • 按照一定的规则进行枚举 • 需要使用IADDBOOK_EnumRecInit() 来初始化一组记录的集合 • 再利用IADDRBOOK_EnumNextRec()来得到所需的结果 • 更具该记录的标识直接获得 • 可以简单的通过IADDRBOOK_GetRecByID()方法

  12. 常见问题 • 导致ISHELL_CreateInstance()的失败 • 忽略了MIF文件中正确权限的选择 • SDK的版本与手机上的BREW版本不一致 • 地址簿操作异常 • 头文件使用错误 • 由于地址簿是与目标手机密切相关的,手机厂商有时会提供自己的头文件

  13. 本章关键点 • 地址簿的创建 • 地址簿分组的访问 • 地址簿记录的访问

  14. 问题回顾 • 如何访问RUIM卡上的地址簿? • 向地址簿增加记录时要注意什么? • 如何修改记录的字段?

More Related