В Android, как вы выбираете только контакты PHONE?

Я запрашиваю контакты из встроенного URI поставщика контактов в Android. Я хочу получить только контакты PHONE; Есть ли какой-либо последовательный способ сделать это? Похоже, что я могу найти, что имя учетной записи для телефонных контактов отличается от производителя к производителю (см. Этот вопрос ). Есть ли способ получить контакты PHONE (а ​​не SIM, Facebook, Twitter или другие) в последовательном, надежном, производительном и аппаратно-агностическом?

Solutions Collecting From Web of "В Android, как вы выбираете только контакты PHONE?"

  Cursor cursor = null; try { String selection = ContactsContract.Data._ID + " = ?"; String[] selectionArgs = new String[] { id }; String[] projection = new String[] { ContactsContract.PhoneLookup.NUMBER}; cursor = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, projection, selection, selectionArgs, null); if (cursor == null || !cursor.moveToFirst()) return; String phone = cursor.getString(0); } finally { if (cursor != null && !cursor.isClosed()) try { cursor.close(); } catch (Throwable ignore) { // Ignored. } } 

Где "?" Это идентификатор пользователя, вы можете поместить этот код в цикл.