维护老项目的时候 领导让重构项目 数据库这块就很头疼 但也得做啊
查了很多资料 获取本地联系人的方法也有很多 总结一下 我自己觉得挺好用的方法 废话不多说
/**
* 获取联系人总数
*
* @param context 上下文
* @return 数量
*/
public static int getContactCount(Context context) {
long currentTimeMillis = System.currentTimeMillis();
String[] projection = new String[]{
ContactsContract.Contacts._ID,
};
ContentResolver cr = context.getContentResolver();
try (Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, projection, null, null, "key")) {
if (cursor != null) {
return cursor.getCount();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
Log.d(TAG, "获取联系人总数耗时: " + (System.currentTimeMillis() - currentTimeMillis));
}
return 0;
}
注意:查总数的时候projection是 ContactsContract.Contacts._ID 这样查出来不会重复