PDA

Ver la Versión Completa : [ CONSULTA ] Obtener lista de contactos


Rsc
22/11/16, 01:18:11
Buenas, después de muchas horas sin encontrar la manera de hacerlo, voy a lanzar la pregunta aquí, a ver si alguien sabe alguna solución.

Estoy tratando de obtener una lista, en cualquier formado legible, de los contactos del telefono.

He encontrado 100 formas diferentes de acceder a la app que muestra los contactos, pero únicamente eso, acceder a la app, pero no consigo obtener una lista para poder trabajar con los mismos.

Un saludo

Caravantes
22/11/16, 03:35:00
Estoy tratando de obtener una lista, en cualquier formado legible, de los contactos del telefono.

No estoy seguro de que te vaya a servir la siguiente idea, que además carece de relación con Tasker. Si tienes los contactos en Google, tal vez te sirva la página siguiente. En ella, arriba en el centro verás un botón "Mas" que te permite exportar los contactos al formato Outlook/Excel. Después, del formato Excel tal vez puedas copiarlos o transformarlos a otro formato que te interese más.
https://www.google.com/contacts/u/0/?cplus=0#contacts

WillyWeb
22/11/16, 07:55:46
Además de la exportación en formato CSV o vCard que te comenta Caravantes lo siguiente que se me ocurre es usar uno de estos plugin...

AutoContacts de joaomgcd.
ContactsTask de Marco Stornelli.

Ambos los tienes en el recopilatorio ... http://www.htcmania.com/showthread.php?p=12650420

SmartPhoneLover
22/11/16, 08:50:54
Podrias hacer un volcado de todos los contactos desde la propia base de datos donde se almacenan los mismo. Luego analizar ese archivo, y usarlo para lo que quieras.

Lo encontrarás en: '/data/data/com.android.providers.contacts/databases/contacts2.db'

Rsc
22/11/16, 15:08:37
Gracias, voy a probar las tres opciones a ver cual me da mejor resultado. Si averiguó cualquier otra forma la compartiré por aquí. Un saludo.

Rsc
26/11/16, 01:33:35
Bueno después de echarle varias horas a los hilos de sqlite, y con la ayuda de los que habéis contestado, he conseguido obtener la lista de contactos del teléfono, así que lo comparto por si a alguien le interesa.

Obtener Lista De Contactos

A1: Ejecutar consola [ Comando:sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db "SELECT display_name FROM raw_contacts WHERE display_name LIKE '%%' LIMIT '100' ;" Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%result Almacenar Errores En: Almacenar Resultado en: ]

A2: Flash [ Texto:%result Largo:Apagado ]

Ahora me falta encontrar la forma de conseguirlo sin necesidad de tener acceso ROOT, si muchas otras app, pueden sin ser ROOT, acceso tiene que hacer alguna manera...

SmartPhoneLover
26/11/16, 10:11:35
Muy bien!
Para lo de conseguir la información sin acceso root, has probado a analizar el archivo csv (copia de seguridad de contactos) que genera Android?

Rsc
26/11/16, 13:41:47
Bueno, he estado mirándolo por encima, pero es un archivo complejo, y por lo pronto abriéndolo como texto aunque estén los datos que necesitó hay muchísimo contenido que no me sirve. Supongo que con el comando grep, podre obtener únicamente los datos que me interesan.

No obstante tampoco es la solución que estaba buscando, dado que dependería de que primero se haga una exportación manual de los contactos.

Pero por lo pronto, sin acceso root, es la única forma que podría hacerlo.

Rsc
27/11/16, 12:18:56
Bueno confirmo, leyendo el archivo contactos.vcf que genera Android, y utilizando el comando grep, se pueden obtener los datos de los contactos con relativa facilidad.

Caravantes
27/11/16, 16:57:40
Bueno confirmo, leyendo el archivo contactos.vcf que genera Android, y utilizando el comando grep, se pueden obtener los datos de los contactos con relativa facilidad.

Porfa, copia aquí la tarea que hace eso. Gracias.

Rsc
27/11/16, 18:50:48
Bueno en mi caso, solo me hace falta obtener una lista con los nombres, porque lo quiero usar como condicional, pero con el comando grep se puede obtener las partes que nos interesen de un texto.

Parece ser, que en este tipo de archivos los datos relevantes tienen siempre en común un texto/codigo colocado en la misma linea.

grep "FN:" sdcard/contacts.vcf

En este caso "FN:" es lo que figura delante de cada nombre, y ese código devuelve todas las lineas del texto que contengan lo que busco.

WH_99 Buscar Contactos VCF (107)

A1: Ejecutar consola [ Comando:grep "FN:" sdcard/contacts.vcf Cuenta atrás (segundos):0 Usar Root:Apagado Almacenar Salida En:%salida Almacenar Errores En: Almacenar Resultado en: ]
A2: Buscar y Reemplazar Contenido de Variable [ Variable:%salida Buscar:FN: Ignorar Caso:Apagado Multilínea:Apagado Una sola coincidencia:Apagado Almacenar Coincidencias En: Reemplazar Coincidencias:Encendido Reemplazar Con: ]
A3: Flash [ Texto:%salida Largo:Apagado ]

Para trabajar con el contenido de un archivo de texto, recomiendo echar un vistazo a las posibilidades que ofrece este comando, que son muchas.

Y bueno, no es que no me quiera molestar, pero en esta pagina viene bastante mejor de lo que lo podría explicar yo.

http://enavas.blogspot.com.es/2008/04/el-shell-de-linux-comando-grep.html?m=1