[UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作。
1. 获取联系人
UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间。
ContactStore contactStore =
await ContactManager.RequestStoreAsync(ContactStoreAccessType.AllContactsReadOnly); IReadOnlyList<Contact> contacts = await contactStore.FindContactsAsync();
NOTE:
1). 获取的联系人列表是当前OS关联的微软账户(Hotmail/Outlook/Live邮箱)的联系人。
2). 获取联系人需要在Package.appxmanifest中将Contacts勾选上。

另外UWP提供了ContactPicker控件用来选取一个或者多个联系人,
ContactPicker contactPicker = new ContactPicker(); contactPicker.SelectionMode = ContactSelectionMode.Fields; contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Address);
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber); //Select one or more contacts
IList<Contact> contacts = await contactPicker.PickContactsAsync(); if (contacts != null &&
contacts.Count > )
{
foreach (Contact contact in contacts)
{
// TODO:
}
} //// Select only one contact
//Contact contact = await contactPicker.PickContactAsync(); //if (contact != null)
//{
// //TODO:...
//}
使用ContactPicker获取联系人时,不需要在Package.appxmanifest中勾选Contacts。
2. 邮件发送
private async void SendMail(Contact recipient, StorageFile attchmentFile)
{
// Windows.ApplicationModel.Email
EmailMessage message = new EmailMessage();
// Mail subject
message.Subject = "This is a test mail."; message.Body = "This is a test mail, please ignore."; if(attchmentFile != null)
{
RandomAccessStreamReference stream =
RandomAccessStreamReference.CreateFromFile(attchmentFile); EmailAttachment attachment = new EmailAttachment(attchmentFile.Name, stream); // Set mail's attachment
message.Attachments.Add(attachment);
} ContactEmail email = recipient.Emails.FirstOrDefault(); if(email != null)
{
EmailRecipient emailRecipient = new EmailRecipient(email.Address); message.To.Add(emailRecipient);
} await EmailManager.ShowComposeNewEmailAsync(message);
}
3. SMS消息发送
private async void ComposeSms(Contact recipient,
string messageBody,
StorageFile attachmentFile,
string mimeType)
{
var chatMessage = new Windows.ApplicationModel.Chat.ChatMessage(); chatMessage.Body = messageBody; if (attachmentFile != null)
{
var stream = RandomAccessStreamReference.CreateFromFile(attachmentFile); var attachment = new Windows.ApplicationModel.Chat.ChatMessageAttachment(
mimeType,
stream); chatMessage.Attachments.Add(attachment);
} var phone = recipient.Phones.FirstOrDefault<Windows.ApplicationModel.Contacts.ContactPhone>();
if (phone != null)
{
chatMessage.Recipients.Add(phone.Number);
}
await Windows.ApplicationModel.Chat.ChatMessageManager.ShowComposeSmsMessageAsync(chatMessage);
}
感谢您的阅读。
[UWP]UWP中获取联系人/邮件发送/SMS消息发送操作的更多相关文章
- 使用Amazon AWS SNS 发送 SMS 消息 .net
1.浏览aws 开发人员指南 https://docs.aws.amazon.com/zh_cn/sns/latest/dg/sms_publish-to-phone.html 2.安装 aws sm ...
- 在 SQL Server 2005 中配置数据库邮件
一. SQL Server发邮件原理和组件介绍: 数据库邮件有4个组件:配置文件.邮件处理组件.可执行文件以及“日志记录和审核组件”. l 配置组件包括: 1)数据库邮件帐户包 ...
- URL转Drawable之 Android中获取网络图片的三种方法
转载自: http://doinone.iteye.com/blog/1074283 Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Applicatio ...
- RocketMQ源码 — 三、 Producer消息发送过程
Producer 消息发送 producer start producer启动过程如下图 public void start(final boolean startFactory) throws MQ ...
- 获取UWP配置文件中的版本信息
原文:获取UWP配置文件中的版本信息 在一般的软件中,我们都会显示当前软件的版本信息.以前作者都是在发版的时候修改一下UWP的配置文件中的版本信息和软件中的版本信息.但是每次这样很麻烦,有时间忘记修改 ...
- Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2
分析下怎么写 首先,我们需要一个输入框,可以手动的输入手机号码, 其次,很少有人愿意手动输入,那么我们需要提供一个按钮来给我们的用户选择自己电话本中的联系人(一次可以选择多个即群发) 然后,我们需要一 ...
- 在 UWP 应用中创建、使用、调试 App Service (应用服务)
在 Windows 10 中微软为 UWP 引入了 App Service (即应用服务)这一新特性用以提供应用间交互功能.提供 App Service 的应用能够接收来自其它应用传入的参数进行处理后 ...
- Win10 UWP开发中的重复性静态UI绘制小技巧 1
介绍 在Windows 10 UWP界面实现的过程中,有时会遇到一些重复性的.静态的界面设计.比如:画许多等距的线条,画一圈时钟型的刻度线,同特别的策略排布元素,等等. 读者可能觉得这些需求十分简单, ...
- 13、在 uwp应用中,给图片添加高斯模糊滤镜效果(一)
如果在应用中,如果想要给app 添加模糊滤镜,可能第一想到的是第三方类库,比如 Win2d.lumia Imaging SDK .WriteableBitmapEx,不可否认,这些类库功能强大,效果也 ...
随机推荐
- iOS 10、Xcode 8 遇到部分问题解决记录
今天把iphone 6 升级到ios10 后,用Xcode 7进行真机调试的时候提示: Could not find Developer Disk Image 果断准备升级到Xcode 8 .但是想保 ...
- AutoComplete
aspx页面 需要引用的文件: <link rel="stylesheet" type="text/css" href="css/jquery. ...
- 转载:MySQL 语句大全:创建、授权、查询、修改等
本文转载>这里 一.用户创建.权限.删除 1.连接MySql操作 连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit ( ...
- HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
今天,在vs2013中新建了一个placard.json文件,当我用jq读取它的时候,去提示404,直接在浏览器访问这个文件,提示: HTTP 错误 404.3 – Not Found 由于扩展配置问 ...
- hao916,hao123,2345.com浏览器劫持-分析与清除
装了Win10, 要激活, 于是论坛下载了一个KMS10激活, (我是很相信论坛的啊, 没想到...)结果浏览器总是被加小尾巴跳转到hao123 http://hao.qquu8.com/?v=108 ...
- vtkQuadric创建二次曲面
在本实例中,我们将用到vtkQuadric.vtkSampleFunction.vtkContourFilter三个类,分别是二次曲面函数.函数曲面抽样和等高滤波. vtkQuadric负责二次曲面基 ...
- spring boot开发入门
最近学习了spring boot,刚刚入门,整理下
- 轻松搞定laravel的curd操作搞定简易留言版(四)
一:目的开发laravel简易留言板 二:路由操作routes.php <?php //GET /msg/index 展示留言列表 //GET /msg/add 展示表单 //POST /msg ...
- 如何在centos下部署Node环境
从今年开始,养车之家的PC 和 M端 的站点 ,服务器从tomcat全部改成了Node,无论在测试环境.准生产.正式环境,我们都需要在服务器进行Node的部署,在这里我给大家详细说明下Node在lin ...
- SQL分页获取数据
SQL Server分页 select * from (') t Oracle分页 SELECT * FROM (' ORDER BY MaterialNM) t