首页 / 软件开发 / JAVA / J2ME Personal Information Management (PIM) 概览
J2ME Personal Information Management (PIM) 概览2012-07-16 IBM Soma Ghosh移动环境中的 Personal Information Management (PIM)随着新设备不断上市,在移动设备上提供 Address Book、Calendar 和 Task List 成为了一项必然的要求。J2ME 应用程序也需要访问 这些数据。可选包 JSR 75 Personal Information Management (PIM) 提供了这个功能。它不仅允许访问包含联系人、约会和任务的本地个人信息,还允许访问基于附加到设备上的 SIM 卡和 Local and Remote Personal Information 数据库的信息。PIM 包支持从 vCard 和 vCalendar 导入和导出数据,vCard 和 vCalendar 分别是 Address Book 和 Calendar 的 Internet 标准格 式。它还拥有阻止未授权类检索个人信息的安全特性。另一个可选包 JSR 75 File Connection 提供一种访问本文探讨范围之外的本地文件系统的方法。J2ME PIM 包Java PIM 包通过 javax.microedition.pim 包表示。这个包定义的重要接口包括:Contact —— 这个接口表示 Address Book 上的单个联系人。ContactList —— 这个接口表示 Address Book,这是一个 Contact 列表。Event —— 这个接口表示单个 Calendar Event。EventList —— 这个接口表示一个 Calendar 事件列表。ToDo —— 这个接口表示 Task List 中的单个 Task。ToDoList —— 这个接口表示 Task 列表。这个包定义的主要类是:PIM —— PIM 类定义一些方法,用于创建一个所有现有列表的索引,打开并编辑那些列表,将其作为来自 vCard 和 vCalendar (Contact 和 Calendar 的 Internet 标准)的导入或导出。Contact 和 ContactList一个 Contact 表示 Address Book 中的单个条目。Contact 中的主要字段是 Name、Address、Email、Birthday、Photo 和 Telephone 。为了确保跨平台可移植性,建议使用 Super Interface PIMList 提供的方法 isSupportedField()。清单 1 展示如何向 Address Book 添加一个 Contact:清单 1. 将 Contact 添加到 Address BookContactList addressBook = null;
try {
addressBook = (ContactList) PIM.getInstance().openPIMList(PIM.CONTACT_LIST,
PIM.READ_WRITE);
} catch (PIMException e) {
// Exit Application
}
Contact singleContact = addressBook.createContact();
String[] name = new String[addressBook.stringArraySize(Contact.NAME)];
if (addressBook.isSupportedField(Contact.NAME_FORMATTED)
singleContact.addString(Contact.NAME_FORMATTED,
PIMItem.ATTR_NONE, "Mrs. Jane Doe");
The createContact() method creates a temporary empty Contact. A commit() call makes
the Contact data persistent. It is advisable to close the lists by invoking the close()
method after necessary operations have been performed.
try {
singleContact.commit();
} catch (PIMException e) {
// Exception occured
}
try {
// Other cleanup tasks
addressBook.close();
} catch (PIMException e) {
}