2010-09-26 28 views
6

Necesito arreglar un error en una aplicación mía anterior. Parte del error es cómo selecciono los contactos. Esto es lo que necesito:¿Cómo elegir contactos solo desde contactos de google (no Facebook, etc.) con números de teléfono?

  1. El contacto debe estar en la lista de contactos de Google 'normal', es decir No quiero conseguir contactos de facebook o similar.
  2. El contacto debe tener al menos un número de teléfono.
  3. El contacto debe ser del antiguo proveedor android.provider.Contacts.
  4. Si puedo usar un Intent para buscar el URI de contacto sin tener que crear la lista de selección, etc., entonces eso es una ventaja.

Suena simple, pero realmente estoy luchando. Esto es lo que estoy intentando:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = new Intent(Intent.ACTION_PICK, Contacts.People.CONTENT_URI); 
    startActivityForResult(intent, PICK_CONTACT_REQUEST); 
} 

Eso funciona bien. Sigo viendo contactos sin números de teléfono, pero puedo vivir con eso. Peor aún es que todavía veo contactos de Facebook en la lista! Esto parece estar en contradicción con la siguiente cita encontrada en el Froyo API for the deprecated Contacts content provider:

Las API han sido reemplazadas por ContactsContract. Las API más nuevas permiten el acceso a múltiples cuentas y admiten la agregación de contactos similares. Estas API continúan funcionando, pero solo devolverán datos para la primera cuenta de Google creada, que coincida con el comportamiento original.

Eso suena exactamente como yo quería, pero no es lo que obtuve.

Por último, aquí están mis preguntas concretas que espero que alguien pueda responder:

  1. Por qué estoy viendo los contactos de Facebook cuando se utilizan las android.provider.Contacts proveedor de contenido?
  2. Si esto no funciona, ¿de qué otro modo puedo hacer que el usuario seleccione un contacto de Google con un número de teléfono?

Muchas gracias. Gustav

+0

hizo u llegar a una solución ?? –

Respuesta

0

Estoy teniendo un problema similar, esto por lo menos le da contactos con números de teléfono (facebook incluido) ...

Intent intent = new Intent(Intent.ACTION_PICK); 
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 
startActivityForResult(intent, PICK_CONTACT_REQUEST); 
Cuestiones relacionadas