Xamarin.Mobile Contacts API takes up a lot of time while fetching contacts?

1.2k Views Asked by At

I'm using Xamarin.Mobile Component for Android to fetch contacts using the code:

var book = new AddressBook (Activity) {PreferContactAggregation = true};
var contData = data.Data;
var cur = Activity.ManagedQuery (contData, null, null, null, null);
Contact myContact = null;
var lookupKeyList = new List<string> ();
while (cur.MoveToNext ()) {
lookupKeyList.Add (cur.GetString (cur.GetColumnIndexContactsContract.Contacts.InterfaceConsts.LookupKey)));
}

myContact = book.Where (c => c.Id == lookupKeyList [0]).First ();

This code is part of picking a contact from the phone book and receiving the data on OnActivityResult method. Unfortunately, this code is taking up too much time on some devices and is instantaneous on others. I guess its related to Contact Aggregation but I am not sure. Any pointers?

1

There are 1 best solutions below

1
On

Sounds like an Android issue, not necessarily a Xamarin issue. Take a look at the question Getting name and email from contact list is very slow. One of the things this answer does is use a Projection in the query to get all the columns in one go.