问题
How to get all contact numbers for a Contact when searching by contact name. Given a contact name how can we search the address book and get all the contact numbers associated with the contact.
回答1:
get the contact list and search for your contact name between the contacts
BlackBerryContactList contList = (BlackBerryContactList)PIM.getInstance().openPIMList(PIM.CONTACT_LIST,PIM.READ_ONLY);
Enumeration er = contList.items();
while (er.hasMoreElements())
{
BlackBerryContact c = (BlackBerryContact)er.nextElement();
if ((contList.isSupportedField(BlackBerryContact.NAME)) && (c.countValues(BlackBerryContact.NAME) > 0))
{
String[] name = c.getStringArray(BlackBerryContact.NAME, 0);
String firstName = name[BlackBerryContact.NAME_GIVEN];
String lastName = name[BlackBerryContact.NAME_FAMILY];
fullname = "";
if (firstName != null)
{
fullname += firstName + " ";
}
//check if the name is the name you want
//here is the code snippet to iterate all phone nrs of a contact
if ((contList.isSupportedField(BlackBerryContact.TEL)) && (c.countValues(BlackBerryContact.TEL) > 0)) {
numValues = 0;
try {
numValues = c.countValues(BlackBerryContact.TEL);
} catch (Exception localException) {
}
for (int i = 0; i < numValues; ++i) {
if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_WORK)
worknumber = c.getString(BlackBerryContact.TEL, i);
else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_HOME)
homenumber = c.getString(BlackBerryContact.TEL, i);
else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_MOBILE)
mobilenumber = c.getString(BlackBerryContact.TEL, i);
else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_OTHER)
othernumber = c.getString(115, i);
else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_PAGER)
pagernumber = c.getString(BlackBerryContact.TEL, i);
else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_FAX) {
faxnumber = c.getString(BlackBerryContact.TEL, i);
}
}
System.out.println("---<><><>Mobile Phone Nr: " + mobilenumber);
System.out.println("---<><><>Work Phone Nr: " + worknumber);
System.out.println("---<><><>Home Phone Nr: " + homenumber);
System.out.println("---<><><>Pager Nr: " + pagernumber);
System.out.println("---<><><>Fax Nr: " + faxnumber);
System.out.println("---<><><>Other Nr: " + othernumber);
}
}
来源:https://stackoverflow.com/questions/2385961/how-to-get-contact-numbers-by-contact-name-using-blackberry-api