我正在使用适用于 Android 的 Xamarin.Mobile 组件来使用以下代码获取联系人:
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 ();
此代码是从电话簿中选择联系人并在 OnActivityResult 方法上接收数据的一部分。不幸的是,这段代码在某些设备上占用了太多时间,而在其他设备上却是即时的。我猜它与联系人聚合有关,但我不确定。任何指针?