0

我正在尝试创建一个小型 WP 8.1 应用程序,该应用程序在启动时显示一个 ContactPicker。我在 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();
        }
    }

然后我将应用程序部署到我的 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>

可能是什么问题呢?

4

1 回答 1

1

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

    contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);

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

问题解决了。

于 2015-09-16T04:42:03.707 回答