Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端
Dotnet9个人博客 人气:1
# Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端
本文同步更新地址:
- https:/https://img.qb5200.com/download-x/dotnet9.com/11520.html
- https://terminalmacs.com/861.html
阅读导航:
- 一、功能说明
- 二、代码实现
- 三、源码获取
- 四、参考资料
- 五、后面计划
## 一、功能说明
完整思维导图:https://github.comhttps://img.qb5200.com/download-x/dotnet9/TerminalMACS/blob/masterhttps://img.qb5200.com/download-x/docs/TerminalMACS.xmind
![Xamarin.Forms客户端通讯录功能](https://img.dotnet9.com/Contactxmind_ClientXamarinForms.png)
本文介绍图中右侧画红圈处的功能,即使用Xamarin.Forms获取和展示Android和iOS的通讯录信息,下面是最终效果,由于使用的是真实手机,所以联系人姓名及电话号码打码显示。
![通讯录列表](https://img.dotnet9.com/ContactList_ClientXamarinForms.png)
并简单的进行了搜索功能处理,之所以说简单,是因为通讯录列表是全部读取出来了,搜索是直接从此列表进行过滤的。
下图来自:https://www.xamboy.com/2019/10/10/getting-phone-contacts-in-xamarin-forms/, 本功能是参考此文所写,所以直接引用文中的图片。
![通讯录搜索列表](https://img.dotnet9.com/ezgif.com-video-to-gif-34.gif)
## 二、代码实现
### 1、共享库工程创建联系人实体类:Contacts.cs
```C#
namespace TerminalMACS.Clients.App.Models
{
///
/// 通讯录
///
public class Contact
{
///
/// 获取或者设置名称
///
public string Name { get; set; }
///
/// 获取或者设置 头像
///
public string Image { get; set; }
///
/// 获取或者设置 邮箱地址
///
public string[] Emails { get; set; }
///
/// 获取或者设置 手机号码
///
public string[] PhoneNumbers { get; set; }
}
}
```
### 2、共享库创建通讯录服务接口:IContactsService.cs
包括:
- 一个通讯录获取请求接口:RetrieveContactsAsync
- 一个读取一条通讯结果通知事件:OnContactLoaded
```C#
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using TerminalMACS.Clients.App.Models;
namespace TerminalMACS.Clients.App.Services
{
///
/// 通讯录事件参数
///
public class ContactEventArgs:EventArgs
{
public Contact Contact { get; }
public ContactEventArgs(Contact contact)
{
Contact = contact;
}
}
///
/// 通讯录服务接口,android和iOS终端具体的通讯录获取服务需要继承此接口
///
public interface IContactsService
{
///
/// 读取一条数据通知
///
event EventHandler
加载全部内容