阅读Xamarin.Forms中的联系人

时间:2016-06-01 15:10:13

标签: c# visual-studio xamarin xamarin.forms

我想阅读智能手机中AdressBook的所有名称。 我已经测试过以下代码,但它不会工作:

CrossContacts.Current.PreferContactAggregation = false;
var hasPermission = CrossContacts.Current.RequestPermission().Result;

if (hasPermission)
{
   Contacts = CrossContacts.Current.Contacts.Select(
      contact => contact.FirstName + " " + contact.LastName);
}

Visual Studio也会引发如下异常:

  

System.ArgumentException:类型的表达式   ' {Plugin.Contacts.ProjectionReader {1}} 1 [System.String]'

这里的问题是什么?

2 个答案:

答案 0 :(得分:1)

如果您想要将所有联系人的姓名连接在一起,请将其返回 struct node* delete_item(struct node* head, int num) { if (head == NULL) { // Found the tail printf("not found\n"); return NULL; } else if (head->data == num) { // Found one to delete head = head->next; free(head); printf("num founded"); return head->next; } else { // Just keep going head->next = delete_item(head->next, num); return head; } } 而不是List<string>

List<Contact>

如果您尝试将整个List<string> nameList = CrossContacts.Current.Contacts.Select(contact => contact.FirstName + " " + contact.LastName).ToList(); 记录返回到列表:

Contact

注意:请注意,对于统一联系人,用户可以拥有数千个可以返回的联系人,因为您不应用任何过滤。

答案 1 :(得分:0)

我认为这是目前Xamarin插件中的一个错误: https://github.com/jamesmontemagno/Xamarin.Plugins/issues/272