#silverlight #windows-phone-7
#silverlight #windows-phone-7
Вопрос:
Как программно прочитать контакт в Windows Phone 7 с помощью silverlight и c #?
Ответ №1:
Прямо сейчас вы получаете доступ только к одному контакту за раз через API EmailAddressChooserTask. Невозможно прочитать весь список контактов.
Комментарии:
1. Спасибо за ответ. Не могли бы вы, пожалуйста, прислать мне код example.it мне это очень поможет. Большое спасибо
2. Класс EmailAddressChooserTask достаточно прост. Погуглите для этого.
3. общедоступный частичный класс MainPage : PhoneApplicationPage {PhoneNumberChooserTask phoneNumberChooserTask; общедоступная MainPage() {InitializeComponent(); phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask. Завершено = новый обработчик событий<PhoneNumberResult>(phoneNumberChooserTask_Completed); } частная пустая кнопка 1_click (отправитель объекта, RoutedEventArgs e) {попробуйте{phoneNumberChooserTask.Show();}catch (System. Исключение InvalidOperationException ex) { } } аннулирует phoneNumberChooserTask_Completed (отправитель объекта, PhoneNumberResult e) {if (e.TaskResult == Результат задачи. OK){TextBox1.Text =e. Номер телефона;}} }
Ответ №2:
Если вы используете Windows Phone 7.0, вы можете одновременно читать только в одном контакте. используя EmailAddressChooserTask
или PhoneNumberChooserTask
подобным образом, вы можете сделать то же самое с EmailAddressChooserTask
:
private PhoneNumberChooseTask myPhoneChooserTask;
public MainPage()
{
InitializeComponent();
myPhoneChooserTask = new PhoneNumberChooseTask ();
myPhoneChooserTask.Completed = (o, e) =>
{
if (e.TaskResult == TaskResult.OK)
//Here means the phone is chosen successfully. you can access the phone number with e.PhoneNumber
else
//Here means the phone is not chosen
}
myPhoneChooserTask.Show(); //Show contact list for choosing
}
Однако в ОС Windows 7.1 вы можете читать во всех контактах, используя поиск контактов с пустой строкой, подобной so .. взято изhttp://msdn.microsoft.com/en-us/library/hh286416 (v = против92).aspx
private void ButtonContacts_Click(object sender, RoutedEventArgs e)
{
Contacts cons = new Contacts();
//Identify the method that runs after the asynchronous search completes.
cons.SearchCompleted = new EventHandler<ContactsSearchEventArgs>(Contacts_SearchCompleted);
//Start the asynchronous search.
cons.SearchAsync(String.Empty, FilterKind.None, "Contacts Test #1");
}
void Contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
{
//Do something with the results.
MessageBox.Show(e.Results.Count().ToString());
}
Удачи!