Android读取通讯录中设置邮件的联系人功能

Android 的联系人邮箱读取功能,挺适合做邮件相关的 App 哦。思路简单,就是先搞定权限,在AndroidManifest.xml加上读取联系人的权限。用ContentResolver配合ContactsContract去查数据,想过滤出有邮箱的联系人,也不难,query 的时候加个条件就行。

查询到数据后,用Cursor一条条遍历,拿到_ID再去查邮箱表ContactsContract.CommonDataKinds.Email,这样就能抓到邮箱地址和类型。邮箱类型还挺实用,比如工作邮箱、私人邮箱,不同场景都能用。

性能上,建议一次性拉取数据再内存,不要每次点一下就查一次数据库。嗯,还有权限别忘了,在 Android 6.0+上运行时也得动态申。不然直接报错,用户体验直接崩。

如果你做的是联系人管理、邮件提醒这种功能,用这个方法可以又快又稳地拿到邮箱数据,还能顺手做一些数据分类。

zip
addressBook.zip 预估大小:47个文件
folder
addressBook 文件夹
file
.project 847B
file
project.properties 563B
folder
src 文件夹
folder
com 文件夹
folder
example 文件夹
folder
addressbook 文件夹
file
MainActivity.java 3KB
file
AddressBookContact.java 435B
file
EmailContactsAdapter.java 2KB
file
AndroidManifest.xml 973B
folder
res 文件夹
folder
drawable-ldpi 文件夹
folder
drawable-hdpi 文件夹
file
ic_launcher.png 7KB
folder
values-v11 文件夹
file
styles.xml 334B
folder
menu 文件夹
file
main.xml 263B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 4KB
folder
layout 文件夹
file
email_contacts_adapter.xml 623B
file
activity_main.xml 692B
folder
values-sw600dp 文件夹
file
dimens.xml 203B
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 24KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 12KB
folder
values 文件夹
file
strings.xml 228B
file
styles.xml 697B
file
dimens.xml 220B
folder
values-sw720dp-land 文件夹
file
dimens.xml 277B
folder
values-v14 文件夹
file
styles.xml 391B
folder
assets 文件夹
folder
gen 文件夹
folder
com 文件夹
folder
example 文件夹
folder
addressbook 文件夹
file
BuildConfig.java 165B
file
R.java 3KB
file
.classpath 475B
file
proguard-project.txt 781B
file
ic_launcher-web.png 50KB
folder
bin 文件夹
file
resources.ap_ 41KB
folder
classes 文件夹
folder
com 文件夹
folder
example 文件夹
folder
addressbook 文件夹
file
R$layout.class 464B
file
R$style.class 446B
file
R$dimen.class 476B
file
ViewHolder.class 372B
file
BuildConfig.class 355B
file
R$drawable.class 422B
file
R$attr.class 355B
file
AddressBookContact.class 801B
file
R$id.class 497B
file
R.class 723B
file
R$string.class 487B
file
R$menu.class 403B
file
MainActivity.class 4KB
file
EmailContactsAdapter.class 2KB
file
AndroidManifest.xml 973B
folder
dexedLibs 文件夹
folder
res 文件夹
folder
crunch 文件夹
folder
drawable-hdpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-mdpi 文件夹
file
ic_launcher.png 3KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 17KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 9KB
file
addressBook.apk 47KB
file
classes.dex 8KB
...
zip 文件大小:244.46KB