Android: Administrar contactos con la clave de búsqueda

Actualmente estoy escribiendo una aplicación que permite guardar borradores (usando la versión android> = 2.0). Cada borrador está conectado a un contacto a través del ContactsContract.Contacts.LOOKUP_KEY . Mi problema es que si cambio el nombre de mi contacto la clave de búsqueda cambia también. ¿Es así como funciona esto?

Entonces, ¿para qué necesito una clave de búsqueda? Pensé que la clave de búsqueda nunca cambia y ahora cambia de todos modos. Estoy confundido acerca de ese comportamiento …

¿Puede alguien explicarme cómo vincular permanentemente a un contacto? ¿Debo usar ID en lugar de la clave de búsqueda?

Gracias por adelantado.

Entiendo que la clave de búsqueda es una clave estructurada / jerárquica. Por lo tanto, estrictamente hablando, puede cambiar, pero todavía se utiliza para encontrar su contacto de nuevo, mediante el uso del método apropiado:

  Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey); Uri res = ContactsContract.Contacts.lookupContact(getContentResolver(), lookupUri); 

Editado:

¿Por qué no encuentra la ID de contacto o la clave de búsqueda mediante el uso de ID de contacto sin formato? Esto es un error en 2.1.

La clave de búsqueda se basó en el nombre de contacto para contactos sin sincronizar.

http://comments.gmane.org/gmane.comp.handhelds.android.devel/130677

============================================================================== =================

No lo intenté todavía. Pero encontré algo de información sobre esto.

http://developer.android.com/resources/articles/contacts.html

….

Si el rendimiento es una preocupación para su aplicación, es posible que desee almacenar la búsqueda y el ID largo de un contacto y crear un URI de búsqueda de ambos ID, como se muestra aquí:

 Uri lookupUri = getLookupUri(contactId, lookupKey) 

Cuando ambos identificadores están presentes en el URI, el sistema intentará utilizar primero el ID largo. Esa es una pregunta muy rápida. Si el contacto no se encuentra, o si el que se encuentra tiene la clave de búsqueda incorrecta, el proveedor de contenido analizará la clave de búsqueda y rastrea los contactos en bruto constituyentes. Si la aplicación procesa en masa los contactos, debe mantener ambos ID. Si su aplicación funciona con un único contacto por acción del usuario, es probable que no tenga que preocuparse de almacenar el ID largo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.