Adicionando linhas ao Cursor manualmente

Tenho uma série de números de telefone e desejo obter os nomes de contatos correspondentes no banco de dados de contato

Na matriz de números de telefone, também tenho alguns números que não foram salvos no banco de dados de contatos. Por exemplo

3333333 -> Tim 5555555 -> Jim 1111111 -> desconhecido

Tenho a matriz que contém os números de telefone mostrados acima, a saber 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 () retorna 2 no cenário acima. Quando o número de telefone não aparece na lista de contatos, o cursor fica vazio e, de alguma forma, quando eu os mesclo, não contribui com nada. O que eu quero é ter um cursor da seguinte forma

elefones @Cursor -> {Tim, Jim, 1111111}

Acho que posso fazer isso adicionando a linha manualmente da seguinte maneira:

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

Como posso conseguir isso?

Aqui está a PEOPLE_PROJECTION

private static final String[] PEOPLE_PROJECTION = new String[] {
    ContactsContract.PhoneLookup._ID,
    ContactsContract.PhoneLookup.DISPLAY_NAME,
    ContactsContract.PhoneLookup.NUMBER
};

questionAnswers(8)

yourAnswerToTheQuestion