How to read contacts using JSR 75
Article Metadata
This MIDlet reads the contact names and numbers from the Phonebook using JSR 75
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class PIMMidelt extends MIDlet
{
ReadPIM readPim;
Display display;
public void startApp()
{
display = Display.getDisplay(this);
readPim = new ReadPIM(this);
display.setCurrent(readPim);
}
public void pauseApp()
{
}
public void destroyApp(boolean uc)
{
}
}
import javax.microedition.lcdui.*;
import javax.microedition.pim.*;
import java.util.*;
import java.io.*;
public class ReadPIM extends Form implements Runnable,CommandListener
{
PIM pim;
PIMList pimlist;
Contact contact=null;
Enumeration enumeration;
PIMMidelt midlet;
String contactName="";
String contactNo="";
StringItem name;
StringItem telno;
Thread thread=null;
Command exitCmd = new Command("Exit",Command.EXIT,1);
public ReadPIM(PIMMidelt midlet)
{
super("Reading contacts");
this.midlet = midlet;
pim = PIM.getInstance();
thread = new Thread(this);
thread.start();
addCommand(exitCmd);
setCommandListener(this);
}
public void run()
{
readContacts();
}
public void readContacts()
{
String[] lists = pim.listPIMLists(pim.CONTACT_LIST);
for (int i = 0; i < lists.length; i++)
{
try{
pimlist = pim.openPIMList(pim.CONTACT_LIST,pim.READ_WRITE);
}catch(Exception e){}
try{
enumeration = pimlist.items();
}catch(Exception e){}
while (enumeration.hasMoreElements())
{
contact = (Contact)enumeration.nextElement();
try{
if(pimlist.isSupportedField(Contact.FORMATTED_NAME)&& (contact.countValues(Contact.FORMATTED_NAME) >0))
{
contactName += contact.getString(Contact.FORMATTED_NAME,0) +"\r\n";;
System.out.println("COntact name:"+contactName);
}
}catch( Exception e){}
int phoneNos = contact.countValues(Contact.TEL);
try{
if(pimlist.isSupportedField(Contact.TEL) &&(contact.countValues(Contact.TEL) >0))
contactNo += contact.getString(contact.TEL,0) +"\r\n";
System.out.println("contact No :"+contactNo);
}catch( Exception e){}
}
name = new StringItem("Name",contactName);
telno = new StringItem("No",contactNo);
append(name);
append(telno);
}
}
public void commandAction(Command c , Displayable d)
{
if(c == exitCmd)
{
midlet.destroyApp(true);
midlet.notifyDestroyed();
}
}
}


ReadPIM.java is causing some intialization exception... so anybody can sort it out... plzz
Some how this code is not fetching contacts from N96. What could be wrong in it. It is just fetching numbers. Please reply if any one of you know about this issue.
19 Sep
2009
This article mekes us understand very well about PIM api.
Easy to understand.
Here this article creates a midlet that displays a name and contact numbers in a form.It has a class that is PIMMidlet that has two instances of ReadPIM and Display. First the Display class sets the current display as a form that derives a class that is ReadPIM.
readContacts() method creates a contact list and append it into the form.