sto affrontando questo problema SQLite in cui sto cercando di estrarre i contatti che hanno il numero di telefono/s con la seguente query:SQLite contatti estratto Android con numero di telefono
Cursor cursor = context.getContentResolver().
query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[]{
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_URI
},
ContactsContract.Contacts.HAS_PHONE_NUMBER + ">?",
new String [] {"0"},
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"
);
Il problema è che in il caso che il contatto ha più di 1 numero telefonico il risultato sarà in questa forma:
id: 451, name: Maria, photoUri: null, has_phone_number: 1, phone_number: 0700 000 000
id: 451, name: Maria, photoUri: null, has_phone_number: 1, phone_number: 0800 000 000
id: 451, name: Maria, photoUri: null, has_phone_number: 1, phone_number: 0900 000 000
che è indesiderabile a causa dei dati duplicati.
Voglio fare solo 1 interrogazione al db che si spera possa essere scritto per riportare il risultato come questo:
id: 451, name: Maria, photoUri: null, has_phone_number: 1, phone_number: 0700 000 000, 0800 000 000, 0900 000 000
E 'possibile?
Grazie.
Non penso sia possibile il modo in cui Android db è impostato. è fuori questione mettere questo in un elenco e unirli manualmente con un ciclo o qualcosa del genere? So che il problema non è un buon modo, ma non posso pensare a uno migliore. –
Ha bisogno di lavorare con i contatti nel raggio di migliaia, vorrei evitare di fare un'ulteriore elaborazione. –
Non conosco Android, ma questo non è troppo difficile da fare in SQL. Puoi eseguire query SQL raw sul tuo database, o sei limitato ad usare quella funzione di query? –