Estoy trabajando en Android 2.0 y estoy tratando de recibir una lista de todos los contactos.
Dado que android.provider.Contacts.People está en desuso, tengo que usar android.provider.ContactsContract , pero no puedo encontrar un ejemplo adecuado de cómo usarlo (por ejemplo: recuperar una lista de todos los contactos en la agenda).
¿Alguien sabe dónde encontrar un ejemplo así?
android
contacts
android-2.0-eclair
aplícame
fuente
fuente
Respuestas:
Primero, asegúrese de haber agregado
a su archivo AndroidManifest.xml, luego puede recorrer los contactos de su teléfono de esta manera:
Además, puede recorrer sus contactos y simplemente obtener el nombre y el número de teléfono de esta manera:
Además, si necesita obtener cosas como notas de un contacto, deberá usar un URI diferente, como el siguiente (no dude en usar este método):
Observe que esta vez utilicé no solo la identificación del contacto, sino también el tipo mime para la consulta.
fuente
Es genial ver información útil, es frustrante lo mal que cubren este importante tema en documentos y similares. Después de tanto hackear, pensé que también compartiría un pequeño código. El siguiente código es un poco más bonito y hace lo mismo de manera más eficiente.
El fragmento de código anterior devuelve un Cursor que apunta a la consulta resultante que solo contiene aquellas filas que tienen un número de teléfono. Esto es bueno ya que normalmente tiene muchos contactos sin números. Además, la PROYECCIÓN limita la cantidad de datos que se devuelven.
El fragmento anterior obtiene el número de teléfono asociado con cada identificación de contacto que tiene un número de teléfono. Guardo toda la información en una tabla hash y con un valor clave del número de teléfono. También eliminé el número de teléfono de toda la información sin dígitos. Por alguna razón, aunque ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER es válido si incluye eso en el argumento de proyección, rompe la consulta, no sé por qué y es frustrante que lo haga.
La segunda parte del código anterior es demasiado lenta, todas las llamadas de consulta simplemente atascan todo. El siguiente código es mucho más rápido. Simplemente tome todas las filas del contenido del teléfono y use contact_ids para ordenar los datos que desee.
Terminas con una tabla hash con toda la información que deseas. Por supuesto, puede poner cualquier información que desee en la estructura de datos. La segunda forma de hacerlo es mucho más rápida.
fuente
ContactsContract.Data.DISPLAY_NAME
) en su proyección; entonces no tendría que hacer una combinación simulada desordenada en Java.Solo quiero agregar, cuando está recuperando los contactos, es posible que obtenga muchos contactos "basura", por ejemplo, algunas direcciones de correo electrónico a las que un usuario ha enviado un correo electrónico en algún momento, pero no se agregan ... Si solo desea los contactos visibles para el usuario, como en la aplicación de contactos propios de Androids, debe restringir la selección a solo IN_VISIBLE_GROUP.
fuente
Creo que es importante tener el código de esta URL http://coderzheaven.com/2011/06/get-all-details-from-contacts-in-android/ en StackOverflow porque en ocasiones enlaces como ese se caen.
texto enfatizado
fuente
Encontré una solución muy fácil para leer contactos. (es aburrido escribir código para leer cada valor, por lo que es bueno usar la clase contenedora para los contactos)
Por supuesto
<uses-permission android:name="android.permission.READ_CONTACTS"/>
ContactList.java
Contact.java
Dirección.java
Email.java
Im.java
Organization.java
Phone.java
ContactoAPI.java
ContactoAPISdk5.java
ContactoAPISdk3.java
Nota : No olvide cambiar el nombre del paquete
*******
.Fuente (el enlace puede morir en cualquier momento :))
fuente
Pon esto ....
Avísame si hay algún problema.
fuente
Esta parte no funcionaría para mí:
Sin embargo, si uso esto, lo hace:
fuente
Puede usar el ejemplo de "ContactManager" del sitio del desarrollador de Android (O) Vaya a la ubicación donde estableció la ruta para descargar android-sdk en su sistema. En la carpeta android-sdk-mac_x86 / samples / android-10, puede ver el ejemplo "ContactManager".
Intenté usar este ejemplo, funcionó bien en mi aplicación.
fuente
Estoy usando Samsung Galaxy Note 4, y no sé por qué ninguno de los anteriores funcionó para mí. Mezclé un poco e hice este woking ..
fuente