Why don't you read them into memory when the app starts and cache them
somewhere?

Kris

On Tue, Jul 30, 2013 at 2:27 PM, shiva pendem <[email protected]> wrote:
> 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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> 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 [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to