在 HelloWorld Windows Phone 8.1 应用程序中使用 ContactPicker 时出现“设备未准备好(HRESULT 异常:0x80070015)”错误

Posted

技术标签:

【中文标题】在 HelloWorld Windows Phone 8.1 应用程序中使用 ContactPicker 时出现“设备未准备好(HRESULT 异常:0x80070015)”错误【英文标题】:"The device is not ready (Exception from HRESULT: 0x80070015)" error when using a ContactPicker in a HelloWorld Windows Phone 8.1 applcation 【发布时间】:2015-12-12 01:29:41 【问题描述】:

我正在尝试创建一个在启动时显示 ContactPicker 的小型 WP 8.1 应用程序。我在 Windows 10 Preview build 10532 上使用 Visual Studio Community 2015 来创建应用程序。因此,一旦我创建了一个 Windows Phone 空白应用程序,我就会添加一个按钮和这段代码。

    public PivotPage()
    
        this.InitializeComponent();

        this.NavigationCacheMode = NavigationCacheMode.Required;

        this.navigationHelper = new NavigationHelper(this);
        this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
        this.navigationHelper.SaveState += this.NavigationHelper_SaveState;

        this.pickContactCommandButton.Click += PickContactCommandButton_Click;
    

    private async void PickContactCommandButton_Click(object sender, RoutedEventArgs e)
    
        try
        
            ContactPicker contactPicker = new ContactPicker();
            IList<Contact> pickedContacts = await contactPicker.PickContactsAsync();
            int pickedCount = pickedContacts != null ? pickedContacts.Count : 0;
            if (pickedCount > 0)
            
            
        
        catch (Exception ex)
        
            MessageDialog md = new MessageDialog(ex.Message);
            await md.ShowAsync();
        
    

然后,我将应用程序部署到安装了 Denim 版本的 Windows Phone 8.1 手机上,并注册开发 (https://msdn.microsoft.com/en-us/library/windows/apps/ff769508%28v=vs.105%29.aspx?f=255&MSPPError=-2147217396)。

当我在手机上运行应用程序并按下按钮时,我会在标题中看到消息,但联系人选择器没有出现。有问题的行是带有等待的行。 如果我将相同的应用程序部署到我的 Windows 10 手机上,效果会很好。

我在 Package.appxmanifest 文件中有这个设置:

  <Capabilities>
    <m3:Capability Name="contacts" />
  </Capabilities>

可能是什么问题?

【问题讨论】:

【参考方案1】:

联系人选择器不显示并抛出异常的原因是在调用联系人选择器pick方法之前缺少这行代码:

    contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);

所以,基本上你需要在 Windows Phone 8.1 上添加至少一个 ContactFieldType,否则联系人选择器会崩溃...

问题解决了。

【讨论】:

以上是关于在 HelloWorld Windows Phone 8.1 应用程序中使用 ContactPicker 时出现“设备未准备好(HRESULT 异常:0x80070015)”错误的主要内容,如果未能解决你的问题,请参考以下文章

Windows KMFD HelloWorld 驱动程序部署任务失败

windows7 下Bochs 运行helloworld

第一个Django项目:HelloWorld

在 HelloWorld Windows Phone 8.1 应用程序中使用 ContactPicker 时出现“设备未准备好(HRESULT 异常:0x80070015)”错误

关于windows下编译java文件的问题

最简单的基于FFmpeg的移动端样例:Windows Phone HelloWorld