2016-08-30 5 views
7

मेरे ऐप से मैं StoredContact और ContactStore का उपयोग करके संपर्क बनाते हैं, KnwonContactProperties.MobileTelephoneGetPropertiesAsync के माध्यम से मोबाइल फोन नंबर सेट करते हुए।ContactStore.Contact.Phones पर कैसे लिखें?

यह ठीक है, और मैं लोगों में मोबाइल फोन नंबर देख सकता हूं।

लेकिन ...

अगर मैं ContactManager.RequestStoreAsync के माध्यम से प्रोग्राम के संपर्कों तक पहुँचने का प्रयास, मैं contact.Phones संग्रह में इस फ़ोन नंबर दिखाई नहीं दे रहा कर

क्या फ़ोन संग्रह में नंबरों को प्राप्त करने का कोई तरीका है?

(Related question)

+0

पुनश्च: मुझे पसंद है इस 8.1 और 10 पर काम करने में सक्षम होना चाहता हूँ ... कोशिश कर के लिए – Benjol

उत्तर

1

KnownContactProperties वर्ग Windows.Phone.PhoneContract नेमस्पेस के अंतर्गत में है, लेकिन ContactManager.RequestStoreAsync() Windows.ApplicationModel.Contacts नाम स्थान के अंतर्गत है। ऐसा कारण हो सकता है कि आप फोन नंबर नहीं प्राप्त कर सकते हैं। ContactStore.CreateOrOpenAsyncWindows.Phone.PhoneContract के तहत विधि KnownContactProperties के साथ ही अच्छी तरह से काम कर सकती है। संपर्क डालने के लिए यहां एक पूरा डेमो है और फिर संपर्क का नाम और फोन नंबर प्राप्त करें।

XAML कोड

<StackPanel> 
    <TextBox x:Name="txtName" Header="name" InputScope="NameOrPhoneNumber"/> 
    <TextBox x:Name="txtTel" Header="phone number 1" InputScope="ChineseHalfWidth"/> 
    <TextBox x:Name="txtTel1" Header="phone number 2" InputScope="TelephoneNumber"/> 
    <Button x:Name="btnSave" Content="Save" Click="btnSave_Click"/> 
    <Button x:Name="btnGet" Content="GET" Click="btnGet_Click"/> 
</StackPanel> 

कोड के पीछे

private async void btnSave_Click(object sender, RoutedEventArgs e) 
{ 
    var name = txtName.Text; 
    var tel = txtTel.Text; 

    ContactStore contactStore = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly); 
    ContactInformation contactInformation = new ContactInformation(); 
    contactInformation.DisplayName = name; 
    var contactProps = await contactInformation.GetPropertiesAsync(); 
    contactProps.Add(KnownContactProperties.MobileTelephone, tel); 
    StoredContact storedContact = new StoredContact(contactStore, contactInformation); 
    await storedContact.SaveAsync(); 
} 

private async void btnGet_Click(object sender, RoutedEventArgs e) 
{ 

    ContactStore contactStore = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly); 
    var result = contactStore.CreateContactQuery(); 
    var count = await result.GetContactCountAsync(); 
    var list = await result.GetContactsAsync(); 
    foreach (var item in list) 
    { 
     var properties = await item.GetPropertiesAsync(); 
     System.Diagnostics.Debug.WriteLine(item.DisplayName);     
     System.Diagnostics.Debug.WriteLine(properties[KnownContactProperties.MobileTelephone].ToString()); 
    } 
} 
+0

हम्म, धन्यवाद। दुर्भाग्यवश मुझे जो करना है वह विपरीत है: 'विंडोज़। एप्लिकेशन मॉडेल। संपर्क' पर लिखने में सक्षम हो, या कम से कम वहां संपर्क की 'योजना' संपत्ति में लिखने के किसी भी तरीके को ढूंढें। इसका कारण यह है कि (जहां तक ​​मैं कह सकता हूं) * वह * है जहां व्हाट्सएप देख रहा है, और मैं चाहता हूं कि व्हाट्सएप उन संपर्कों का पता लगाने में सक्षम हो जो मेरा ऐप बना रहा है ... – Benjol

+0

क्या आपने यह आधिकारिक नमूना चेक किया है: https: //github.com/Microsoft/Windows-universal-samples/tree/master/Samples/ContactCardIntegration। इस नमूने में 'windows.AplicationModel.Contacts' से संपर्क लिखने के बारे में कोड है, क्या इसका उपयोग करते समय आपको समस्याएं थीं? यह [contactphone class] का उपयोग करता है (https://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.contacts.contactphone) –

+0

वास्तव में मुझे लगता है कि मैं आपको गलत समझा सकता हूं। आपने फोन की संपत्ति 'KnwonContactProperties.MobileTelephone' के साथ सेट की है जो 'Windows.Phone.PhoneContract' से आती है। लेकिन अब आपने कहा था कि आप फोन की संपत्ति को 'विंडोज़ के साथ सेट करना चाहते हैं। एप्लीकेशन मॉडेल। संपर्क'। क्या आपने मेरा कोड परीक्षण किया है? कोड ऐप द्वारा बनाए गए संपर्कों को सूचीबद्ध करता है। –

संबंधित मुद्दे