JSR75 PartII PIM

来源:互联网 发布:水流量计算软件 编辑:程序博客网 时间:2024/05/21 19:46

                                                            JSR75 之 PIM

对PIM这块内容一直没有研究过,所以抽出一天时间,看了看书,写了个样例,算是大概理解其含义和用法了。感觉调试起来还是有很多细节需要注意,比如电话本上某个条目为空的时候,如果去读取电话号码时候,String tel = contact.getString(Contact.TEL, 0),当这个条目是空的时候,会抛出异常,所以需要加个异常处理来解决。其他的基本也没啥难的,但比FCAPI使用起来要繁琐很多。

我觉得PIM的应用价值,主要是对个人信息的导入/导出上,就是 vCardvCalendar相关的应用上。在本文中没有讨论vCard和vCalendar,我想有必要抽空补充上。

以下就是正文了。

 

PIMJ2ME开发者提供了访问目标设备上存储的个人信息的API

PIM共由8个接口和6个类(其中4个异常类)组成,定义在javax.microedition.pim包中。

PIM定义了3种类型的个人信息列表,包括:个人通讯录、日程表和任务表,通常他们都是以本地形式存储在设备上。PIM为每种类型的个人信息列表都提供了如下访问接口。

ContactList接口用于访问设备中的个人通讯录、联系人列表。

EventList接口用于访问日程表。

ToDoList接口用于访问任务表。

3个接口都是PIMList得子接口,PIMList接口定义了访问个人信息列表的公共方法。

 

PIM定义的个人信息列表由一些项目组成,列表类型不同,其中的项目类型也不同。PIM为每种类型的项目都定义如下访问接口。

Contact接口用于访问联系人列表中的项目。

Event接口用于访问日程表中的项目。

ToDo接口用于访问任务表中的项目。

3个接口都是PIMItem得子接口,PIMItem接口定义了访问个人信息项目的公共方法。

 

 

       在使用PIM之前,需要先确定是否支持PIM

System.getProperty(“microedition.pim.version”);

如果不支持,则返回null.

 

实战代码

(这里是获取电话本中信息,其他类型数据过程类似)

     

这是我花了大概1天的时间,写的一个样例,经过调试,在真机上可以运行。

但是有个问题,我暂时没能解决。目前我只能获取存储在手机内存上的电话本信息,无法获取SIM卡上的电话本信息。上网简单搜了下,也没找到答案,我想,或许访问SIM卡这是安全机制不允许的吧。

流程小结:

1. String[] listNames = PIM.getInstance().listPIMLists(PIM.CONTACT_LIST);

获得列表名称,肯能有多个,所以是个数组。

2. ContactList list = (ContactList) PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE, name);

根据列表名称,获取列表
3. Enumeration items = list.items();

while (items.hasMoreElements()) {

       Contact contact = (Contact) items.nextElement();

}

遍历列表,获得实际条目。

4. 获得电话号码(其他字段内容类似),需要在while循环里进行

String tel = contact.getString(Contact.TEL, 0);

 

 

 

原创粉丝点击