C'è un modo per ottenere tutti i numeri di telefono per tutti i contatti senza fare una query separata per ogni contatto? (usando Android 2.0+). È molto lento se hai oltre 100 contatti (inutilizzabile sui telefoni di fascia bassa), mi chiedevo se potessi fare una query più efficiente.Modo efficiente per caricare tutti i contatti e tutti i numeri di telefono (Android 2.0)
Attualmente sto ottenendo un cursore con tutti i contatti ContactsContract.Contacts.IN_VISIBLE_GROUP validi, quindi una query separata per ogni contatto per ottenere tutti i loro numeri.
Snippet dal get Contatti solo geting nome e ricerca della chiave:
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.LOOKUP_KEY};
Poi ogni contatto utilizzando la chiave di ricerca.
Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
Uri res = ContactsContract.Contacts.lookupContact(contentResolver, lookupUri);
String[] projection = new String[]{ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.HAS_PHONE_NUMBER};
...
Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, phoneProjection, selection, selectionArgs, sortOrder);
che si collega a questa domanda? – scottyab
Hai ragione di presentare il modulo due volte. Buon posto Votato per chiudere. – scottyab