KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have an array of phone numbers and I want to get the corresponding contact names from the contacts database. In the array of phone numbers, I also have some numbers that are not saved before to the contact database. For example; 3333333 -> Tim 5555555 -> Jim 1111111 -> unknown I have the array containing the phone numbers shown above, namely phoneArr . int size=phoneArr.size(); if(size>0){ Cursor[] cursors=new Cursor[size]; for(int i=0;i<size;i++){ Uri contactUri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneArr.get(i))); cursors[i] = getContentResolver().query(contactUri1, PEOPLE_PROJECTION, null, null, " _id asc limit 1"); } Cursor phones=new MergeCursor(cursors); phones.getCount() returns 2 in the above scenario. When the phone number does not appear in the contact list the cursor becomes empty and somehow when I merge them it doesn't contribute anything at all. What I want is to have a cursor as follows Cursor phones -> {Tim, Jim, 1111111} I think I can do this by adding the row manually as follows: Uri contactUri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneArr.get(i))); cursors[i] = getContentResolver().query(contactUri1, PEOPLE_PROJECTION, null, null, " _id asc limit 1"); if(cursors[i].getCount()==0) // add the phone number manually to the cursor How can I achieve this? Here is the PEOPLE_PROJECTION private static final String[] PEOPLE_PROJECTION = new String[] { ContactsContract.PhoneLookup._ID, ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.PhoneLookup.NUMBER };
Tags (comma-separated)
Save Edits
Cancel