如果有任何adb命令可以用来查找设备上的联系人总数,请告诉我。 -提前致谢, 馒头
答案 0 :(得分:4)
您可以尝试以下代码:
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null, null,null);
while (cursor.moveToNext()) {
listName.add(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
listContactId.add(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)));
if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)),null, null);
while (pCur.moveToNext()) {
listMobileNo.add(pCur.getString(pCur.getColumnIndex("DATA1")));
}
pCur.close();
} else
listMobileNo.add("");
}
adb pull /data/data/com.android.providers.contacts/databases/contacts2.db <PATH TO PASTE THE DATABASE>
在检索数据库之后使用SQLite浏览器打开它
答案 1 :(得分:1)
似乎有一些adb
命令有效(从Android 10开始)。
adb shell content query --uri content://contacts/people/
假设您拥有bash shell(Linux,Linux的OSX或Windows子系统),则可以将这些命令的输出通过管道传递到wc -l
以获得计数。
adb shell content query --uri content://contacts/people/ | wc -l
其他有趣的命令包括:
adb shell content query --uri content://contacts/phones/
adb shell content query --uri content://contacts/groups/
adb shell content query --uri content://contacts/groupmembership/
adb shell content query --uri content://contacts/organizations/
答案 2 :(得分:0)
这不需要root和sqlite
,但是它不显示数字,仅显示联系人姓名:
adb shell content query --uri content://com.android.contacts/contacts --projection display_name
编辑:如果您找到一种显示数字的方法,请在下面添加评论。