我正在尝试查找某人的电子邮件地址,给定他们的电话号码(假设他们将其存储在联系人中)。
目前,如果我想要这个人的名字或其他东西,我已经很好了,只是在做:
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 或其他什么?