我想要获取与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获取ArrayList中的所有联系人电话号码
- 2. 获取联系人的所有号码(电话)? (在Android 2.1)
- 3. 从联系人获取所有电话号码
- 4. 获取Android中所有具有电话号码的联系人详细信息
- 5. 如何获取所有联系人全名和电话号码,仅当他们有电话号码?
- 6. 什么是有效的方式来获取联系人的所有联系人姓名和电话号码API
- 7. 获取联系电话号码
- 8. startActivityForResult的一个联系人的所有电话号码
- 9. 如何转储联系人的所有电话号码?
- 10. 查询联系人的所有电话号码
- 11. Android SDK-获取特定联系人的电话号码
- 12. 从选定的联系人获取多个电话号码
- 13. 获取联系人的ID,姓名和电话号码?
- 14. Android的联系人列表获取电话号码
- 15. 获取联系人的电话号码Android 1.5
- 16. 如何从android中的联系人获取电话号码
- 17. 从联系人获取基于名称的电话号码Android
- 18. 无法获取最后联系人的电话号码
- 19. 从电话簿获取联系人姓名使用号码 - Android
- 20. Android:使用电话号码获取联系人姓名
- 21. Android从联系人列表中获取电话号码
- 22. 从联系人获取地址和电话号码?
- 23. iPhone SDK:从电话号码获取联系人姓名
- 24. 联系人选择器,获取电话号码
- 25. 按电话号码搜索联系人
- 26. 按电话号码搜索联系人
- 27. 提取所有用户的联系电话号码Swift3/iOS9 +
- 28. iOS联系方式如何通过电话获取联系人号码
- 29. 如何获取联系人中选定人员的电话号码
- 30. 获得iPhone的联系人电话号码类型
“我不能应用这个原始的android食谱” - 为什么不呢?这是一小段代码 - 所有必需的API应该在Xamarin中可用。也许如果你告诉我们,当你试图将这段代码转换为C#时,你会遇到什么具体问题,我们可以更好地帮助你。 – Jason
@jason对不起,我不清楚。也许现在这更好地描述问题 –
https://developer.xamarin.com/api/type/Android.Provider.Contacts+People+Phones/ – Jason