[英]How to get Email addrss and phone number from contact details in android application
我想从Android中的联系人详细信息中获取电子邮件地址和电话号码。我能够提取电话号码,但我希望当其选择电话号码时也可以将电子邮件地址提取到其对应的联系人ID。因此我可以将其添加到arraylist中。 谢谢
public void getContactslist()
{
ContentResolver contactResolver = getContentResolver();
Cursor cursor = contactResolver.query(Phone.CONTENT_URI , null,null,null, null);
// Cursor emails = contactResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,null, null, null);
if(cursor.getCount() > 0)
{
cursor.moveToFirst();
do {
String number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
String displayname = cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));
long contactid = cursor.getLong(cursor.getColumnIndex(Phone.CONTACT_ID));
Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactid, null, null);
System.out.println("**emails*******"+number);
while (emails.moveToNext())
{
String email = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.e("Email", email);
}
}while (cursor.moveToNext() );
}
}
我已经尝试了以下代码段,并且可以正常工作。 希望这对您有所帮助。
public HashMap<String, String> getNameEmailDetails(){
HashMap<String, String> names = new HashMap<String, String>();
ContentResolver cr = getContext().getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor cur1 = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{id}, null);
while (cur1.moveToNext()) {
//to get the contact names
String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
Log.e("Name :", name);
String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.e("Email", email);
if(email!=null){
names.put(name, email);
}
}
cur1.close();
}
}
return names;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.