You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10 UWP中Contact.DeleteAsync()方法缺失,如何删除联系人?

为何Contact.DeleteAsync()方法缺失/报错?

原因分析

  1. 权限不足:你请求的是ContactStoreAccessType.AllContactsReadOnly只读权限,该权限下无法执行删除联系人的操作,相关修改类API会被限制。
  2. API使用错误:UWP的Contact类本身并没有DeleteAsync()实例方法,删除联系人需要通过ContactStore对象的DeleteContactAsync()方法来完成。

解决办法

步骤1:申请正确的联系人访问权限

将RequestStoreAsync的参数改为可读写权限,比如ContactStoreAccessType.AllContactsReadWrite(需在应用清单中声明联系人权限):

var contactStore = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AllContactsReadWrite);

步骤2:使用ContactStore的DeleteContactAsync方法删除联系人

替换原来的contact.DeleteAsync()调用,改为通过联系人ID调用ContactStore的删除方法:

private static async Task DoContactDelete()
{
    var contactStore = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AllContactsReadWrite);
    var contacts = await contactStore.FindContactsAsync();
    
    foreach (var contact in contacts) 
    {
        var text = contact.ToString();
        // 使用ContactStore的DeleteContactAsync方法,传入联系人ID
        await contactStore.DeleteContactAsync(contact.Id);
    }
}

额外注意

  • 确保在应用的Package.appxmanifest中声明了联系人权限:在“功能”标签下勾选“联系人”。
  • 如果只需要删除自己应用创建的联系人,可以使用ContactStoreAccessType.LimitedWriteOnly权限,该权限不需要用户授予广泛的联系人访问权限。

内容的提问来源于stack exchange,提问作者Pacala_ba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 00:59:53