2016-11-25 5 views
0

Xamarin.Androidに連絡するすべての電話番号と電子メールを取得しようとしています。私はこれを見つけましたhttps://stackoverflow.com/a/2356760/4965222しかし、Xamarin.Androidの生のアンドロイドレシピを入手することができないので、私はどこでも見つけられません。Phones._IDPhones.TYPEPhones.NUMBERPhones.LABELPeople.Phones.CONTENT_DIRECTORYです。 Xamarin.Mobileライブラリなしでこのデータを取得するには?ここで連絡先の電話番号をすべて取得するXamarin.Android

+2

「このアンドロイドレシピは適用できません」 - なぜですか?これはコードの短い断片であり、必要なすべてのAPIがXamarinで利用できるはずです。たぶん、あなたがこのコードをC#に変換しようとしたときにどんな具体的な問題があるのか​​を教えれば、私たちはあなたを助けることができます。 – Jason

+0

@jason申し訳ありませんが、わかりませんでした。たぶんこれは問題 –

+0

https://developer.xamarin.com/api/type/Android.Provider.Contacts+People+Phones/についてよく説明しています – Jason

答えて

1

ですが、私は答えを見つけました。

1

が出発点ドキュメンテーション研究の後

public List<PersonContact> GetPhoneContacts() 
    { 
     var phoneContacts = new List<PersonContact>(); 

     using (var phones = ApplicationContext.ContentResolver.Query(ContactsContract.CommonDataKinds.Phone.ContentUri, null, null, null, null)) 
     { 
      if (phones != null) 
      { 
       while (phones.MoveToNext()) 
       { 
        try 
        { 
         string name = phones.GetString(phones.GetColumnIndex(ContactsContract.Contacts.InterfaceConsts.DisplayName)); 
         string phoneNumber = phones.GetString(phones.GetColumnIndex(ContactsContract.CommonDataKinds.Phone.Number)); 

         string[] words = name.Split(' '); 
         PersonContact contact = new PersonContact(); 
         contact.FirstName = words[0]; 
         if (words.Length > 1) 
          contact.LastName = words[1]; 
         else 
          contact.LastName = ""; //no last name, is that ok? 
         contact.PhoneNumber = phoneNumber; 
         phoneContacts.Add(contact); 
        } 
        catch (Exception ex) 
        { 
         //something wrong with one contact, may be display name is completely empty, decide what to do 
        } 
       } 
       phones.Close(); //not really neccessary, we have "using" above 
      } 
      //else we cannot get to phones, decide what to do 
     } 

     return phoneContacts; 
    } 


public class PersonContact 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string PhoneNumber { get; set; } 
} 
関連する問題