android studio做一个通讯录_Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端...

Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端

本文同步更新地址:

  • https://dotnet9.com/11520.html
  • https://terminalmacs.com/861.html

阅读导航:

  • 一、功能说明
  • 二、代码实现
  • 三、源码获取
  • 四、参考资料
  • 五、后面计划

一、功能说明

完整思维导图:https://github.com/dotnet9/TerminalMACS/blob/master/docs/TerminalMACS.xmind

138bbf55d4077ee0d90704338812921e.png

本文介绍图中右侧画红圈处的功能,即使用Xamarin.Forms获取和展示Android和iOS的通讯录信息,下面是最终效果,由于使用的是真实手机,所以联系人姓名及电话号码打码显示。

f72e8594decd170539c82b4673283197.png

并简单的进行了搜索功能处理,之所以说简单,是因为通讯录列表是全部读取出来了,搜索是直接从此列表进行过滤的。

下图来自:https://www.xamboy.com/2019/10/10/getting-phone-contacts-in-xamarin-forms/, 本功能是参考此文所写,所以直接引用文中的图片。

8fb322c7b017b1678693b6a07ed6d2bf.png

二、代码实现

1、共享库工程创建联系人实体类:Contacts.cs

namespace 

2、共享库创建通讯录服务接口:IContactsService.cs

包括: - 一个通讯录获取请求接口:RetrieveContactsAsync - 一个读取一条通讯结果通知事件:OnContactLoaded

using 

3、iOS工程中添加通讯录服务,实现IContactsService接口:

using 

4、在iOS工程中的Info.plist文件添加通讯录权限使用说明

a0833cd5533c7ba8610d9d2127ca7dc6.png

5、在Android工程中添加读取通讯录权限配置:AndroidManifest.xml

<uses-permission 

完整权限配置如下

<?xml version="1.0" encoding="utf-8"?>

6、在Android工程中添加通讯录服务,实现IContactServer接口:ContactsService.cs

using 

需要添加 Plugin.CurrentActivity 和 Acr.UserDialogs 包。

7、Android工程添加权限处理判断类

Permission.Util

using 

MainActivity.OnRequestPermissionResult是权限申请结果处理函数,在此函数中调用ContactsService.OnRequestPermissionsResult通知通讯录服务权限处理结果。

MainActivity.cs

using 

8、创建通讯录ViewModel,并使用通讯录服务

using 

9、添加通讯录页面展示通讯录数据

<?xml version="1.0" encoding="utf-8" ?>

三、源码获取

  • 1.完整源码:https://github.com/dotnet9/TerminalMACS
  • 2.Android客户端可成功取得通讯录数据,并可查询;

已编译的Android客户端:https://terminalmacs.com/terminalmacs-clients-app-android

  • 3.iOS读取通讯录功能代码也已添加,但由于本人没有iOS测试环境,所以未验证,有条件的朋友可以测试下iOS的通讯录读取功能,如果代码不起作用,可参考本文参考的文章检查iOS代码。

四、参考资料

Getting phone contacts in Xamarin Forms:https://www.xamboy.com/2019/10/10/getting-phone-contacts-in-xamarin-forms/

参考文章末尾有源代码链接。

五、后面计划

Xamarin.Forms客户端基本信息获取,比如IMEI、IMSI、本机号码、Mac地址等。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值