HI everyone,

i am making an application to get the name of the contact no saved on the 
mobile.

i am using the following code

private class *CallStateListener *extends *PhoneStateListener *{
private String *displayContacts*(String incomingNumber) {
     ContentResolver cr = ctx.getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
         while (cur.moveToNext()) {
         String id = 
cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
         String name = 
cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
         if (Integer.parseInt(cur.getString(
                       
 cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                     Cursor pCur = cr.query(
                     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                     null, 
                     ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = 
?", 
                     new String[]{id}, null);
                     while (pCur.moveToNext()) {
                     String phoneNo = 
pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                     if(phoneNo.length()>9&&incomingNumber.length()>9)
                     {
                     // 
Log.v("Test",phoneNo.substring(phoneNo.length()-10,phoneNo.length())+"   
"+incomingNumber.substring(incomingNumber.length()-10,incomingNumber.length()));
                     
if(phoneNo.substring(phoneNo.length()-10,phoneNo.length()).equals(incomingNumber.substring(incomingNumber.length()-10,incomingNumber.length())))
                     {
                     Toast.makeText(ctx, "Name: " + name + ", Phone No: " + 
phoneNo, Toast.LENGTH_SHORT).show();
                     Log.v("Test","qualified   "+phoneNo+"   "+name);
                     pCur.close();
                     return ""+name;
                     }
                     }
                     } 
              pCur.close();
          }
         }
        }
        return "";
    }
i am calling the *displayContacts() *method with the incoming call no as 
argument
but its taking about 18 to 29 seconds to get the contact name, some times 
it is taking more than 35 seconds,

can any one suggest me the best way to get the contact names saved in the 
mobile,
i need to get the contact name in the following manner,
i have a contact with name as service call and no as 9848012345
and if i get a call i should get the name in not more than 5 seconds .

if there are any new mechanisms that are used to implement this mechanism 
plese send me the links,

Thanks
Shiva Shankar,

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to