0

起動時に ContactPicker を表示する小さな WP 8.1 アプリケーションを作成しようとしています。Windows 10 Preview ビルド 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 )。

電話でアプリを実行してボタンを押すと、タイトルにメッセージが表示され、連絡先ピッカーが表示されません。問題のある行は await のある行です。同じアプリを Windows 10 Mobile フォンに展開すると、うまく機能します。

これを Package.appxmanifest ファイルに設定しました。

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

何が問題なのですか?

4

1 に答える 1

1

連絡先ピッカーが表示されず、例外がスローされた理由は、連絡先ピッカーの pick メソッドを呼び出す前に次のコード行が欠落していたためです。

    contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);

したがって、基本的には、Windows Phone 8.1 に少なくとも 1 つの ContactFieldType を追加する必要があります。そうしないと、連絡先ピッカーがクラッシュします...

問題が解決しました。

于 2015-09-16T04:42:03.707 に答える