[英]How to get email id, name and number from contact list
I am trying to fetch name, contact no and email id from contact list and store in array list and forward to server. 我正在尝试从联系人列表中获取姓名,联系人编号和电子邮件ID,并将其存储在数组列表中并转发给服务器。 I am storing name, phone and email id to
contactNameArrayList
, contactNumberArrayList
and contactEmailIdArrayList
. 我将姓名,电话和电子邮件ID存储到
contactNameArrayList
, contactNumberArrayList
和contactEmailIdArrayList
。
Below code I got name, email and contact no but how to store specific email id to specific contact no? 在下面的代码中,我得到了姓名,电子邮件和联系方式,但是如何将特定的电子邮件ID存储到特定的联系方式?
private void getAllContacts() {
ContentResolver contactResolver = context.getContentResolver();
Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
if(cursor.getCount()>0)
while ( cursor.moveToNext()) {
String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Log.e("TAG", " Name: " + displayName+"==>phone Number==>"+number);
contactNameArrayList.add(displayName);
contactNumberArrayList.add(number);
final String[] projection = new String[]{ContactsContract.CommonDataKinds.Email.DATA,
ContactsContract.CommonDataKinds.Email.TYPE};
Cursor emailCursor = contactResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,null, null, null);
while (emailCursor.moveToNext()) {
String email = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
int type = emailCursor.getInt(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
String s = (String) ContactsContract.CommonDataKinds.Email.getTypeLabel(context.getResources(), type, "");
Log.e(TAG,"EMAIL==>"+email);
}
emailCursor.close();
}
cursor.close();
Log.e(TAG,"contactNameArrayList sIZE==>"+contactNameArrayList.size()+"contactNumberArrayList size==>"+contactNumberArrayList.size()+"contactEmailAddressArrayList size==>"+contactEmailAddressArrayList.size());
}
Above code I call getAllcontact
method. 上面的代码我调用
getAllcontact
方法。 I got number and name and email id and store in contactNameArrayList
and contactNumberArrayList
and contactEmailAddressList
. 我得到了号码,姓名和电子邮件ID,并将其存储在
contactNameArrayList
和contactNumberArrayList
和contactEmailAddressList
。 But when I get email id response is like this: 但是当我收到电子邮件ID时,响应是这样的:
Name: efg==>phone Number==>(256) 655-555
名称:efg ==>电话号码==>(256)655-555
EMAIL==>abc@gmail.com电子邮件==> abc@gmail.com
EMAIL==>pqr@gmail.com电子邮件==> pqr@gmail.com
EMAIL==>xyz@gmail.com电子邮件==> xyz@gmail.com
Name: abc==>phone Number==>(256) 655-555名称:abc ==>电话号码==>(256)655-555
EMAIL==>abc@gmail.com电子邮件==> abc@gmail.com
EMAIL==>pqr@gmail.com电子邮件==> pqr@gmail.com
EMAIL==>xyz@gmail.com电子邮件==> xyz@gmail.com
Name: pqr==>phone Number==>(987) 456-1238名称:pqr ==>电话号码==>(987)456-1238
EMAIL==>abc@gmail.com电子邮件==> abc@gmail.com
EMAIL==>pqr@gmail.com电子邮件==> pqr@gmail.com
EMAIL==>xyz@gmail.com电子邮件==> xyz@gmail.com
Name: xyz==>phone Number==>(987) 456-1238名称:xyz ==>电话号码==>(987)456-1238
EMAIL==>abc@gmail.com电子邮件==> abc@gmail.com
EMAIL==>pqr@gmail.com电子邮件==> pqr@gmail.com
EMAIL==>xyz@gmail.com电子邮件==> xyz@gmail.com
So how to get email id for specific phone and store in contactEmailArrayList
. 因此,如何获取特定电话的电子邮件ID并将其存储在
contactEmailArrayList
。 As per above response conatactNameArrayList
and contactNumberArrayList
size same but ContactEmailAddressArrayList
size is different. 根据上述响应,
conatactNameArrayList
和contactNumberArrayList
大小相同,但ContactEmailAddressArrayList
大小不同。 So please give me suggestion. 所以请给我建议。
make one class for getting email,name,no etc. 上一堂课以获取电子邮件,名称,否等。
public class UserContact {
private String userName,userEmail;
private boolean isSelect;
public boolean isSelect() {
return isSelect;
}
public void setSelect(boolean select) {
isSelect = select;
}
public UserContact(){}
public UserContact(String userName, String userEmail) {
this.userName = userName;
this.userEmail = userEmail;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
} }
then in main activity make one list as global level of class . 然后在主要活动中列出一个清单作为全球班级。
private List<UserContact> mContactList = new ArrayList<>();
then call getContact details. 然后致电getContact详细信息。
/**
* this method read device in contact name and email.
*/
public void getContact() {
if (PermissionManager.checkPermission(getActivity(), READ_CONTACT)) {
mContactList.clear();
List<UserContact> contactList = new ArrayList<>();
Cursor cur = getActivity().getContentResolver().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 = getActivity().getContentResolver().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 (!TextUtils.isEmpty(email)) {
contactList.add(new UserContact(name, email));
}
}
cur1.close();
}
}
mContactList = contactList;
setAdapter();
} else {
PermissionManager.askForPermission(READ_CONTACT, getActivity());
}
}
above method get only name and email you can modify your needs and add phone number code. 上述方法仅获取姓名和电子邮件,您可以修改您的需求并添加电话号码代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.