我是Android新手,目前我可以从Google联系人中检索联系人列表和图片。但是,我的应用程序中的联系人列表不提供我公司内的电子邮件建议,例如Google Gmail应用程序。
我可以检索这些额外的电子邮件地址吗?
以下是检索联系人的代码
public ArrayList<String> getNameEmailDetails() {
ArrayList<String> emlRecs = new ArrayList<String>();
HashSet<String> emlRecsHS = new HashSet<String>();
ContentResolver cr = getContentResolver();
String[] PROJECTION = new String[] { ContactsContract.RawContacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID,
ContactsContract.CommonDataKinds.Email.DATA,
ContactsContract.CommonDataKinds.Photo.CONTACT_ID };
String order = "CASE WHEN "
+ ContactsContract.Contacts.DISPLAY_NAME
+ " NOT LIKE '%@%' THEN 1 ELSE 2 END, "
+ ContactsContract.Contacts.DISPLAY_NAME
+ ", "
+ ContactsContract.CommonDataKinds.Email.DATA
+ " COLLATE NOCASE";
String filter = ContactsContract.CommonDataKinds.Email.DATA + " NOT LIKE ''";
Cursor cur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, PROJECTION, filter, null, order);
if (cur.moveToFirst()) {
do {
// names comes in hand sometimes
String name = cur.getString(1);
String email = cur.getString(3);
String contact_id = cur.getString(4);
Bitmap profilePic = openPhoto(Long.parseLong(contact_id));
if (profilePic != null) {
profileList.add(new WordMatchAdapterWithIMG.profileWithIMG(email, profilePic));
}
} while (cur.moveToNext());
}
cur.close();
return emlRecs;
}
答案 0 :(得分:0)
我建议您使用Google Contacts API。
Google通讯录API允许客户端应用程序查看和更新用户的联系人。联系人存储在用户的Google帐户中;大多数Google服务都可以访问联系人列表。
要检索单个联系人,请将已授权的 GET
请求发送到该联系人的自我链接网址:
https://www.google.com/m8/feeds/contacts/ {USEREMAIL} /充满/ {的ContactID}
成功后,服务器会以 HTTP 200 OK
状态代码和请求的联系人条目进行回复。
public static ContactEntry retrieveContact(ContactsService myService){ ContactEntry联系= myService.getEntry(新网址(&#34; https://www.google.com/m8/feeds/contacts/default/full/contactId&#34;), ContactEntry.class); //对联系人做点什么 回复联系; }
有用的材料