Android adb命令用于获取设备上的完整联系人

时间:2014-09-19 06:33:56

标签: android adb

如果有任何adb命令可以用来查找设备上的联系人总数,请告诉我。 -提前致谢, 馒头

3 个答案:

答案 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

编辑:如果您找到一种显示数字的方法,请在下面添加评论。