我正在实施电话簿应用程序,我希望用户能够从已安装在Android中的联系人应用程序中将联系人导入我的应用程序。问题是我无法检索从列表中选择的联系人的电子邮件的值。
我使用以下代码打开联系人应用程序
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
在onActivityResult中我使用以下代码来获取我从联系人列表中选择的联系人的数据:
Uri contactUri = data.getData();
String[] projection = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Email.ADDRESS};
Cursor cursor = getContentResolver()
.query(contactUri, projection, null, null, null);
cursor.moveToFirst();
int column = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String number = cursor.getString(column);
int column1 = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS);
String email= cursor.getString(column1);
int column2 = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
String fullName = cursor.getString(column2);
但“email”变量包含与联系人电话号码相同的值。可能有什么不对?
此外,游标的Phone.DISPLAY_NAME列包含联系人的完整名称。(firstName,middleName和lastName)。有没有办法分别获得这些字段?现在我使用split(“”)函数来分隔它们。
提前谢谢!
答案 0 :(得分:0)