【发布时间】:2018-11-15 17:27:50
【问题描述】:
我正在尝试从联系人列表中获取姓名、联系人编号和电子邮件 ID,并将其存储在数组列表中并转发到服务器。我将姓名、电话和电子邮件 ID 存储到 contactNameArrayList、contactNumberArrayList 和 contactEmailIdArrayList。
下面的代码我得到了姓名、电子邮件和联系人号码,但是如何将特定的电子邮件 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());
}
上面的代码我调用getAllcontact 方法。我得到了号码、姓名和电子邮件 ID,并存储在 contactNameArrayList 和 contactNumberArrayList 和 contactEmailAddressList 中。但是当我收到电子邮件 id 时,回复是这样的:
姓名:efg==>电话号码==>(256) 655-555
EMAIL==>abc@gmail.com
EMAIL==>pqr@gmail.com
EMAIL==>xyz@gmail.com
姓名:abc==>电话号码==>(256) 655-555
EMAIL==>abc@gmail.com
EMAIL==>pqr@gmail.com
EMAIL==>xyz@gmail.com
姓名:pqr==>电话号码==>(987) 456-1238
EMAIL==>abc@gmail.com
EMAIL==>pqr@gmail.com
EMAIL==>xyz@gmail.com
姓名:xyz==>电话号码==>(987) 456-1238
EMAIL==>abc@gmail.com
EMAIL==>pqr@gmail.com
EMAIL==>xyz@gmail.com
那么如何获取特定手机的电子邮件 ID 并将其存储在 contactEmailArrayList 中。根据上述回复conatactNameArrayList 和contactNumberArrayList 大小相同但ContactEmailAddressArrayList 大小不同。所以请给我建议。
【问题讨论】:
标签: java android android-studio android-contacts android-cursor