我想要獲取與Xamarin.Android聯繫的所有電話號碼和電子郵件。我發現這https://stackoverflow.com/a/2356760/4965222,但我不能應用這個原始的android配方Xamarin.Android,因爲沒有找到我可以得到Phones._ID
,Phones.TYPE
,Phones.NUMBER
, Phones.LABEL
, People.Phones.CONTENT_DIRECTORY
。如何在沒有Xamarin.Mobile庫的情況下獲取這些數據?獲取聯繫人的所有電話號碼Xamarin.Android
0
A
回答
1
文獻研究後,我找到了答案。
//filtering phones related to a contact
var phones = Application.Context.ContentResolver.Query(
ContactsContract.CommonDataKinds.Phone.ContentUri,
null,
ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId
+ " = " + contactId, null, null);
// getting phone numbers
while (phones.MoveToNext())
{
var number =
phones.GetString( //specify which column we want to get
phones.GetColumnIndex(ContactsContract.CommonDataKinds.Phone.Number));
// do work with number
}
phones.Close();
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; }
}
相關問題
- 1. Android聯繫人 - 獲取電話號碼
- 2. Android獲取ArrayList中的所有聯繫人電話號碼
- 3. 獲取聯繫人的所有號碼(電話)? (在Android 2.1)
- 4. 從聯繫人獲取所有電話號碼
- 5. 獲取Android中所有具有電話號碼的聯繫人詳細信息
- 6. 如何獲取所有聯繫人全名和電話號碼,僅當他們有電話號碼?
- 7. 什麼是有效的方式來獲取聯繫人的所有聯繫人姓名和電話號碼API
- 8. 所有具有多個電話號碼的聯繫人
- 9. 獲取聯繫電話號碼
- 10. startActivityForResult的一個聯繫人的所有電話號碼
- 11. 如何轉儲聯繫人的所有電話號碼?
- 12. 查詢聯繫人的所有電話號碼
- 13. 如何使用電話號碼獲取所有聯繫人姓名?
- 14. 從一個聯繫人獲取所有電話號碼並在edittext中設置
- 15. 查找聯繫人的電話號碼
- 16. 如何從所選聯繫人中提取電話號碼?
- 17. 通過電話號碼獲取正確的聯繫人姓名
- 18. 獲取聯繫人的ID,姓名和電話號碼?
- 19. 如何從android中的聯繫人獲取電話號碼
- 20. 如何獲取Skype聯繫人的電話號碼?
- 21. Android SDK-獲取特定聯繫人的電話號碼
- 22. 從選定的聯繫人獲取多個電話號碼
- 23. 無法獲取最後聯繫人的電話號碼
- 24. 從聯繫人獲取基於名稱的電話號碼Android
- 25. 如何獲取什麼應用聯繫人的電話號碼
- 26. 獲取聯繫人的電話號碼Android 1.5
- 27. 如何獲取按電話號碼排序的聯繫人?
- 28. Android的聯繫人列表獲取電話號碼
- 29. iPhone SDK:從電話號碼獲取聯繫人姓名
- 30. 開放聯繫人和獲取電話號碼
「我不能應用這個原始的android食譜」 - 爲什麼不呢?這是一小段代碼 - 所有必需的API應該在Xamarin中可用。也許如果你告訴我們,當你試圖將這段代碼轉換爲C#時,你會遇到什麼具體問題,我們可以更好地幫助你。 – Jason
@jason對不起,我不清楚。也許現在這更好地描述問題 –
https://developer.xamarin.com/api/type/Android.Provider.Contacts+People+Phones/ – Jason