• 欢迎访问年轻的斯基网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏年轻的斯基吧

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

建站知识 liam 6个月前 (04-02) 106次浏览 0个评论 扫描二维码

>

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息,作为TerminalMACS的一个子进程模块,目前完成第一版:读取展示手机基本信息、联系人信息、应用程序本地化。

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息,作为TerminalMACS的一个子进程模块,目前完成第一版:读取展示手机基本信息、联系人信息、应用程序本地化。

1. Xamarin.Forms读取手机信息 – 功能简介

阅读导航 展开

1.1. 读取手机基本信息

主要使用Xamarin.Essentials库获取设备基本信息,Xam.Plugin.DeviceInfo插件获取App Id,其实该插件也能获取设备基本信息。

1.2. 读取手机联系人信息

Android和iOS工程具体实现联系人读取服务,使用到DependencyService获取服务功能。

1.3. 应用本地化

使用资源文件实现本地化,目前只做了中、英文。

2. 详细功能说明

2.1. 读取手机基本信息

Xamarin.Essentials库用于获取手机基本信息,比如手机厂商、型号、名称、类型、版本等;Xam.Plugin.DeviceInfo插件获取App Id,用于唯一标识不同手机,获取信息见下图:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

代码结构如下图:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

2.2. 读取手机联系人信息

Android和iOS工程具体实现联系人读取服务,使用到DependencyService获取服务功能,功能截图如下:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息
Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

2.2.1. TerminalMACS.Clients.App

代码结构如下图:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息
2.2.1.1. 联系人实体类:Contacts.cs

目前只获取联系人名称、图片、电子邮件(可能多个)、电话号码(可能多个),更多可以扩展。

2.2.1.2. 联系人服务接口:IContactsService.cs

包括:

  • 一个联系人获取请求接口:RetrieveContactsAsync
  • 一个读取一条联系人结果通知事件:OnContactLoaded

该接口由具体平台(Android和iOS)实现。

2.2.1.3. 联系人VM:ContactViewModel.cs

VM提供下面两个功能:

  1. 全部联系人加载。
  2. 联系人关键字查询。
2.2.1.4. 联系人展示页面:ContactPage.xaml

简单的布局,一个StackLayout布局容器竖直排列,一个SearchBar提供关键字搜索功能。

2.2.2. Android

代码结构如下图:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息
  • AndroidManifest.xml:写入读、写联系人权限请求。
  • ContactsService.cs:具体的联系人权限请求、数据读取操作。
  • MainActivity.cs:接收权限请求结果
  • MainApplicaion.cs:此类未添加任务关键代码,但必不可少,否则无法正确弹出权限请求窗口。
  • PermissionUtil.cs:权限请求结果判断

2.2.2.1. AndroidManifest.xml添加权限

只添加下面这一行即可:

2.2.2.2. ContactsService.cs

Android联系人获取实现服务,实现IContactsService。注意命名空间上的特性代码,必须添加上这个特性后,在前面的联系人VM中才能使用DependencyService.Get()获取此服务实例,默认服务是单例的:

2.2.2.3. MainActivity.cs

代码简单,只在OnRequestPermissionsResult方法中接收权限请求结果:

2.2.3. iOS

代码结构如下图:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息
  • ContactsService.cs:具体的联系人权限请求、数据读取操作。
  • Info.plist:权限请求时描述文件

2.2.3.1. ContactsService.cs

iOS具体的联系人读取服务,实现IContactsService接口,原理同Android联系人服务类似,本人无调试环境,iOS此功能未测试。

2.2.3.2. Info.plist

联系人权限请求说明

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

2.3. 应用本地化

使用资源文件实现本地化,目前只做了中、英文。

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

资源文件如下:

Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息

指定默认区域性

要使资源文件可正常使用,应用程序必须指定 NeutralResourcesLanguage。 在共享项目中,应自定义 AssemblyInfo.cs 文件以指定默认区域性 。 以下代码演示如何在 AssemblyInfo.cs 文件中将 NeutralResourcesLanguage 设置为 zh-CN (摘自官方文档:https://docs.microsoft.com/zh-cn/samples/xamarin/xamarin-forms-samples/usingresxlocalization/,后经测试,注释下面这段代码也能正常本地化):

  1. [assembly: NeutralResourcesLanguage(“zh-Hans”)]

XAML中使用

引入资源文件命名空间

  1. xmlns:resources=”clr-namespace:TerminalMACS.Clients.App.Resx”

具体使用如

  1. <Label Text=”{x:Static resources:AppResource.ClientName_AboutPage}” FontAttributes=”Bold”/>

3. 关于TerminalMACS及本客户端

3.1. TermainMACS

多终端资源管理与检测系统,包含多个子进程模块,目前只开发了Xamarin.Forms客户端,下一步开发服务端,使用 .NET 5 Web API开发,基于Abp vNext搭建。

3.2. Xamarin.Forms客户端

作为TerminalMACS系统的一个子进程模块,目前只开发了手机基本信息获取、联系人信息获取、本地化功能,后续开发服务端时,会配合添加通信功能,比如连接服务端验证、主动推送已获取资源等。

3.3. 关于项目开源

  1. 开源项目地址:https://github.com/dotnet9/TerminalMACS

原文链接:https://terminalmacs.com/890.html

本站最新优惠

年轻的斯基 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Xamarin.Forms读取手机信息,3分钟搞定联系人信息和基本信息
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址