2011-07-05 20 views
8

Estoy consultando los contactos fuera del URI del proveedor de contactos incorporado en Android. Quiero obtener solo los contactos de TELEFONO; ¿Hay alguna forma consistente de hacer esto? Parece por lo que puedo encontrar que el nombre de la cuenta para los contactos telefónicos difiere de un fabricante a otro (vea this question). ¿Hay alguna manera de obtener contactos TELEFÓNICOS (no SIM, Facebook, Twitter u otros) de manera consistente, confiable, fabricante y dispositivo independiente?En Android, ¿cómo selecciona solo los contactos de TELÉFONO?

+0

¿Quieres obtener todos los contactos que tengan un número de teléfono? ¿O te refieres a todos los contactos que se importaron de la tarjeta SIM? – michaelg

+0

Estaba buscando obtener todos los contactos que estaban almacenados en la libreta de direcciones "en el teléfono", independientemente de si tienen números de teléfono, correos electrónicos o lo que sea. Pensé que podría hacerlo uniendo mi consulta con la tabla 'accounts' y buscando el nombre de la cuenta' vnd.sec.contact.phone', pero leyendo en línea, parece que el nombre de la cuenta es fabricante (¿y posiblemente dispositivo?) específico. – eidylon

Respuesta

-1
  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. 
         } 
       } 

Donde "?" es ID de usuario, puede poner este código en un bucle.

+0

A menos que esté malinterpretando este código, ¿no me encontraría solo todos los contactos de cualquier fuente (teléfono, sim, facebook, twitter, etc.) pero solo quienes tienen números de teléfono? Deseo encontrar SOLO contactos del teléfono, independientemente de si tienen un número de teléfono o no. – eidylon

+0

Tienes razón, he entendido mal tu pregunta. Pensé que intentabas obtener el número de teléfono de un usuario (ID) en particular. Trataré de encontrar una respuesta para ti. Lo siento por eso. – vsm

+0

¡No hay problema, gracias por el esfuerzo de todos modos! :) – eidylon

Cuestiones relacionadas