简体   繁体   中英

android get contacts with at least 1 phone number

I am trying to get all numbers that i have in my device with condition , that the contact contains at least 1 phone number. I made a try , but it doesn't work.

selectionString =  edtSearch.getText().toString() ;
String[] selectionArgs = { "%" + selectionString + "%", selectionString + "%", "%" + selectionString, "0"};



String selection =  ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? OR "
        + ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? OR "
        + ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? AND "
        + ContactsContract.Contacts.HAS_PHONE_NUMBER + " NOT LIKE ?";


CursorLoader cursorLoader = new CursorLoader(ContactsActivity.this,
        ContactsContract.Contacts.CONTENT_URI, // URI
        null, // projection fields
        selection, // the selection criteria
        selectionArgs, // the selection args
        ContactsContract.Contacts.DISPLAY_NAME + " ASC" // the sort order
);
return cursorLoader;

Where is the mistake ?

Change the selectionArgs and selection as below,

String[] selectionArgs = { "%" + selectionString + "%", selectionString + "%", "%" + selectionString};

String selection =  ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? OR "
            + ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? OR "
            + ContactsContract.Contacts.DISPLAY_NAME + " LIKE ? AND "
            + ContactsContract.Contacts.HAS_PHONE_NUMBER + "='1'";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM