private async Task<IList<Contact>> SelectContactsAsync( SelectContactInteraction selectContact )
        {
            Contract.Requires( selectContact != null );
            Contract.Ensures( Contract.Result<Task<IList<Contact>>>() != null );

            var commitButtonText = selectContact.DefaultCommand?.Name;
            var dialog = new ContactPicker();

            dialog.DesiredFieldsWithContactFieldType.AddRange( selectContact.DesiredFields );
#if WINDOWS_PHONE_APP
            TryIfImplemented( () => dialog.SelectionMode = selectContact.DesiredFields.Any() ? ContactSelectionMode.Fields : ContactSelectionMode.Contacts );
            TryIfImplemented( () => { if ( !string.IsNullOrEmpty( commitButtonText ) ) dialog.CommitButtonText = commitButtonText; } );
#else
            dialog.SelectionMode = selectContact.DesiredFields.Any() ? ContactSelectionMode.Fields : ContactSelectionMode.Contacts;

            if ( !string.IsNullOrEmpty( commitButtonText ) )
                dialog.CommitButtonText = commitButtonText;
#endif
            if ( selectContact.Multiselect )
                return await dialog.PickContactsAsync();

            var contacts = new List<Contact>();
            var contact = await dialog.PickContactAsync();

            if ( contact != null )
                contacts.Add( contact );

            return contacts;
        }
Exemple #2
0
        public async Task <IEnumerable <Contact> > PickContactsPhone()
        {
            ContactPicker contactPicker = new ContactPicker();

            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);

            var contacts = await contactPicker.PickContactsAsync();

            return(contacts);
        }
Exemple #3
0
        private async void PickContactsPhone()
        {
            ClearOutputs();

            var contactPicker = new ContactPicker();

            // Ask the user to pick contact phone numbers.
            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
            var contacts = await contactPicker.PickContactsAsync();

            ReportContactResults(contacts);
        }
Exemple #4
0
        private async void PickContactsEmail()
        {
            ClearOutputs();

            var contactPicker = new ContactPicker();

            // Ask the user to pick contact email addresses.
            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);
            var contacts = await contactPicker.PickContactsAsync();

            ReportContactResults(contacts);
        }
        private async void HandleAddContactClick(Object sender, RoutedEventArgs e)
        {
            var contactPicker = new ContactPicker
            {
                SelectionMode = ContactSelectionMode.Contacts,
                //SelectionMode = ContactSelectionMode.Fields,
                //DesiredFieldsWithContactFieldType = {ContactFieldType.Email}
            };
            var contacts = await contactPicker.PickContactsAsync();

            foreach (var contact in contacts)
            {
                AppSampleData.Current.SampleData.AddContact(contact);
            }
        }
Exemple #6
0
        private async void MultiSelectContact_Tapped(object sender, TappedRoutedEventArgs e)
        {
            ContactPicker contactPicker = new ContactPicker();

            contactPicker.CommitButtonText = "Select";
            contactPicker.SelectionMode    = ContactSelectionMode.Fields;
            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);

            IList <Contact> contacts = await contactPicker.PickContactsAsync();

            if (contacts != null && contacts.Count > 0)
            {
                foreach (Contact contact in contacts)
                {
                    System.Diagnostics.Debug.WriteLine(contact?.DisplayName + contact.Emails?[0]?.Address);
                }
            }
        }
Exemple #7
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            ContactPicker contactPicker = new ContactPicker();

            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
            var contacts = await contactPicker.PickContactsAsync();

            if (contacts != null && contacts.Count > 0)
            {
                foreach (Contact contact in contacts)
                {
                    recipientbox.Text += contact.Phones[0].Number + "; ";
                }
                var wors = recipientbox.Text.Split("; ");
                foreach (var wor in wors)
                {
                    Debug.WriteLine(wor);
                }
            }
        }
        private async void contactsPicker()
        {
            var contactPicker = new ContactPicker();

            contactPicker.CommitButtonText = "Select";
            contacts = await contactPicker.PickContactsAsync();

            contactPickerTb.Text = string.Empty;
            if (contacts != null && contacts.Count > 0)
            {
                foreach (Contact contact in contacts)
                {
                    var item = (new ContactItemAdapter(contact));

                    contactPickerTb.Text = contactPickerTb.Text + item.Name + "; ";
                }
            }
            else
            {
            }
        }
        /// <summary>
        /// Launches a picker which allows the user to choose multiple contacts
        /// </summary>
        /// <param name="response">Contains the chosen contacts or null if nothing was selected</param>
        public static void PickContacts(Action <IEnumerable <WSAContact> > response)
        {
#if NETFX_CORE || (ENABLE_IL2CPP && UNITY_WSA_10_0)
            UnityEngine.WSA.Application.InvokeOnUIThread(async() =>
            {
                ContactPicker contactPicker = new ContactPicker();

                contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);
                contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
                contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Address);

                IList <Contact> contacts = await contactPicker.PickContactsAsync();

                UnityEngine.WSA.Application.InvokeOnAppThread(() =>
                {
                    if (response != null)
                    {
                        response(contacts != null && contacts.Any() ? contacts.Select(x => MapContactToWSAContact(x)) : null);
                    }
                }, true);
            }, false);
#endif
        }
        private async void btnPickContacts_Click(object sender, RoutedEventArgs e)
        {
            ContactPicker contactPicker = new ContactPicker();

            // 指定需要选取的联系人的字段
            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);
            contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);

            // 启动联系人选取器,以选择多个联系人
            IList <Contact> contacts = await contactPicker.PickContactsAsync();

            if (contacts != null && contacts.Count > 0)
            {
                foreach (Contact contact in contacts)
                {
                    lblMsg.Text += string.Format("name:{0}", contact.Name);
                    lblMsg.Text += Environment.NewLine;

                    foreach (ContactEmail email in contact.Emails)
                    {
                        lblMsg.Text += string.Format("email kind:{0}, email address:{1}", email.Kind, email.Address);
                        lblMsg.Text += Environment.NewLine;
                    }

                    foreach (ContactPhone phone in contact.Phones)
                    {
                        lblMsg.Text += string.Format("phone kind:{0}, phone number:{1}, phone description:{2}", phone.Kind, phone.Number, phone.Description);
                        lblMsg.Text += Environment.NewLine;
                    }
                }
            }
            else
            {
                lblMsg.Text += "取消了";
                lblMsg.Text += Environment.NewLine;
            }
        }