我正在尝试根据他们的电话号码找到某人的电子邮件地址(假设他们将其存储在“通讯录”中)。
如果我想要这个人的名字或某事,我一直都很好:
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
Uri.encode(phoneNumber));
Cursor cur = getContentResolver().query(uri, null, null, null, null);
String name = cur.getString(cur.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
但是,无法通过电子邮件数据库
使用电话号码进行搜索Uri emailUri = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Email.CONTENT_LOOKUP_URI,
Uri.encode(phoneNumber));
Cursor cur = getContentResolver().query(emailUri, null, null, null, null);
//Returns nothing, unless someone has the email +441234567891@hotmail.com or something
现在我可以使用CONTENT_FILTER_URI,并搜索我刚刚找到的人的名字......但是我可以得到2个John Smiths ......必须有一些方法才能加入PhoneLookup和电子邮件数据库?也许使用LOOKUP_KEY,或其他东西?