no se puede insertar fotos en el registro de llamadas en sí; esos se almacenan en el contacto que está vinculado a la entrada del registro de llamadas. Consulte ContactsContract.Data para obtener más información acerca de cómo hacer eso.
En cuanto al dispositivo HTC que no actualiza el registro de llamadas con una foto existente, podría estar relacionado con la forma en que HTC Sense almacena en caché las entradas del registro de llamadas; He visto problemas similares que solo aparecen en los dispositivos Sense.
Las entradas del registro de llamadas normalmente se almacenan en la tabla calls
en la base de datos de la aplicación Contactos (/data/data/com.android.providers.contacts/databases/contacts2.db
). Por alguna razón, parece que HTC Sense no actualiza las entradas existentes del registro de llamadas si los datos de contacto cambian, pero otras ROM lo hacen.
Por ejemplo, si uso un HTC EVO LTE con stock Sense 5.0 para hacer una llamada a alguien que he guardado como "Jenny Smith", se crea una entrada en la tabla calls
, que incluye un campo name
, donde almacena a Jenny Smith. Si actualizo su información de contacto a "Jenny Jones" y le hago una nueva llamada, se almacena una nueva entrada en la tabla calls
con el nombre Jenny Jones, pero la entrada anterior no se cambia. La pantalla del Historial de llamadas muestra todas las llamadas como Jenny Jones, pero la base de datos tiene un nombre antiguo.
Otros dispositivos que he probado (incluido un Nexus 5) actualizan las entradas anteriores en la tabla calls
cuando se visualiza el Registro de llamadas. Es probable que su dispositivo Motorola se comporte como el Nexus 5, actualizando los datos según sea necesario.
No soy un asistente de base de datos, pero tengo una cantidad razonable de familiaridad con ellos. Desde una perspectiva de estructura de base de datos, me parece extraño que cualquier información específica de contacto esté almacenada en esa tabla calls
(contiene un campo raw_contacts_id
que está vinculado al mismo campo en la tabla contacts
de esa base de datos donde toda la información de contacto real se almacena), pero así es como se implementa.
En HTC, ¿ha intentado dar solo el número de fecha y duración sin los valores de caché? – Kobor42
También se ha formulado una pregunta similar aquí sin respuestas: http://stackoverflow.com/questions/21577391/android-updating-a-call-log-entry-in-htc-custom-dialers-call-log-not -trabajo –