个人信息管理(Personal Information Management)(简称PIM)API是J2ME的可选包,它为访问和修改存在于移动设备上的PIM数据库提供了可能。三个主要的PIM数据库是联系人列表、事件列表、TO-DO列表。
下边的例子说明了如何使用PIM API创建一个事件
EventList events = null;
try {
events = (EventList) PIM.getInstance().openPIMList(PIM.EVENT_LIST,
PIM.READ_WRITE);
}
catch (SecurityException e) {}
catch (PIMException e) {}
Event event = events.createEvent();
try {
if (events.isSupportedField(Event.LOCATION))
event.addString(Event.LOCATION, PIMItem.ATTR_NONE, "Office");
if (events.isSupportedField(Event.SUMMARY))
event.addString(Event.SUMMARY, PIMItem.ATTR_NONE,
"Please call Sam Huang");
if (events.isSupportedField(Event.START))
event.addDate(Event.START, PIMItem.ATTR_NONE,
(new Date()).getTime() + 60000);
if (events.isSupportedField(Event.END))
event.addDate(Event.END, PIMItem.ATTR_NONE,
(new Date()).getTime() + 60000 * 5));
if (events.isSupportedField(Event.ALARM))
event.addInt(Event.ALARM, PIMItem.ATTR_NONE,
(new Date()).getTime() + 60000 * 1));
if (events.isSupportedField(Event.NOTE))
event.addString(Event.NOTE, PIMItem.ATTR_NONE,
"Please call Sam Huang");
if (events.maxCategories() != 0 && events.isCategory("Reminder"))
event.addToCategory("Reminder");
} catch (PIMException e) {
}
try {
event.commit();
}
catch (SecurityException e) {}
catch (PIMException e) {}
try {
events.close();
} catch (PIMException e) {}
Illustration below imports Contact from vcard.
void importContact(InputStream is) {
QuotedPrintableInputStream qpis = new QuotedPrintableInputStream(is);
try {
PIMItem[] items = PIM.getInstance().fromSerialFormat(qpis, "UTF-8");
Contact c = (Contact) (items[0]);
ContactList cl = (ContactList) PIM.getInstance().openPIMList(
PIM.CONTACT_LIST, PIM.READ_WRITE);
cl.importContact(c);
} catch(PIMException pe) {
} catch(IOException ioe) {
}
}