维护老项目的时候 领导让重构项目 数据库这块就很头疼 但也得做啊
查了很多资料 获取本地联系人的方法也有很多 总结一下 我自己觉得挺好用的方法 废话不多说
/** * 获取联系人总数 * * @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 这样查出来不会重复