Czy istnieje sposób na uzyskanie wszystkich numerów telefonów dla wszystkich kontaktów bez osobnego zapytania dla każdego kontaktu? (używając Androida 2.0+). To naprawdę powolne, jeśli masz ponad 100 kontaktów (nieużyteczne w telefonach z niższej półki), zastanawiałem się, czy mogę zrobić bardziej wydajne zapytanie.Wydajny sposób na załadowanie wszystkich kontaktów i wszystkich numerów telefonów (Android 2.0)
Obecnie otrzymuję kursor z wszystkimi ważnymi kontaktami ContactsContract.Contacts.IN_VISIBLE_GROUP, a następnie osobne zapytanie dla każdego kontaktu, aby uzyskać wszystkie jego numery.
Fragment z get Kontakty prostu czuło nazwisko i odnośników klucz:
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.LOOKUP_KEY};
Następnie każdy kontakt za pomocą klawisza odnośnika.
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);
że linki na to pytanie? – scottyab
Masz prawo dwukrotnie przesłać formularz. Dobre miejsce. Zagłosowano, aby zamknąć. – scottyab