Agregando filas al Cursor manualmente

Tengo una serie de números de teléfono y quiero obtener los nombres de contacto correspondientes de la base de datos de contactos.

En el conjunto de números de teléfono, también tengo algunos números que no se guardaron antes en la base de datos de contactos. Por ejemplo

3333333 -> Tim 5555555 -> Jim 1111111 -> desconocido

Tengo la matriz que contiene los números de teléfono que se muestran arriba, 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 () devuelve 2 en el escenario anterior. Cuando el número de teléfono no aparece en la lista de contactos, el cursor se vacía y, de alguna manera, cuando los combino, no aporta nada. Lo que quiero es tener un cursor de la siguiente manera

Teléfonos con cursor -> {Tim, Jim, 1111111}

Creo que puedo hacer esto agregando la fila manualmente de la siguiente manera:

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

¿Cómo puedo conseguir esto

Aquí está la PEOPLE_PROJECTION

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

Respuestas a la pregunta(8)

Su respuesta a la pregunta