You do know that the reason there's a ContentResolver is for you to run queries right?
http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html
You'll get the result instantly.
On Tuesday, July 30, 2013 9:27:49 PM UTC+3, shiva pendem wrote:
-- On Tuesday, July 30, 2013 9:27:49 PM UTC+3, shiva pendem 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 codeprivate 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 argumentbut 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 9848012345and 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,ThanksShiva 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+unsubscribe@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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment