我是第一次出现堆栈溢出,所以如果我不能正确解释这个问题,或者没有以任何方式遵守这个社区的政策,请原谅我。
我的问题是:今天早上我正在学习堆栈溢出,突然一个问题出现在我的脑海中。假设我的电子邮件地址是simran@gmail.com,并且这是当前在我的设备中登录。那么如何获取与我的电子邮件帐户关联的所有电子邮件联系人。我的gmail帐户中添加了200个人,所以我想在listview中显示所有这些。
注意:我知道如何实现列表视图,以及如何将主电子邮件地址和其他电子邮件登录到我的设备中。
我需要什么:我想获取simran的所有电子邮件联系人@gmail.com。这可能吗?如果答案是肯定的,那么怎么做?我们可以在未经用户许可的情况下获取此信息吗?
谢谢Simran
您可以使用此代码从联系人列表中获取所有电子邮件联系人-
public ArrayList<String> getNameEmailDetails(){
ArrayList<String> names = new ArrayList<String>();
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor cur1 = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{id}, null);
while (cur1.moveToNext()) {
//to get the contact names
String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
Log.e("Name :", name);
String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.e("Email", email);
if(email!=null){
names.add(name);
}
}
cur1.close();
}
}
return names;
}
希望这对你有帮助。
您必须添加权限-
<uses-permission android:name="android.permission.READ_CONTACTS" />
没有这个许可,这似乎是不可能的。