He registrado un ContentObserver
desde el servicio y obtengo la función onchange()
cuando hay una actualización en el teléfono como llamada o actualización de contacto. Pero quiero que se llame a la función onchange()
solo cuando suceden, actualizan o eliminan. Pero no quiero cuando la llamada es entrante o saliente. Entonces, ¿alguien puede decirme qué URI
puedo registrar en contentObserver
? Mi código es aquíContentObserver para actualización de contacto manualmente
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,new Contact_change());
y la clase Contact_change.java es como
public class Contact_change extends ContentObserver{
public Contact_service() {
super(null);
}
@Override
public void onChange(boolean selfChange){
Log.i("contact_service","onchange");
Super.onChange(selfChange);
}
@Override
public boolean deliverSelfNotifications() {
return true;
}
}
Editar:
tengo otro problema es que después de detener el servicio si he hecho el cambio en contacto a continuación, también onchange()
se llama función. Entonces, ¿cómo puedo detener eso o registrar el contentobserver
.
no creo que esto es posible. el momento de la última llamada es un campo del contacto, por lo que cambiarlo está cambiando el contacto – njzk2
¿Es otra manera de obtener una notificación de cambios en el contacto? Porque quiero sincronizar los contactos con mi aplicación. – Nency
No creo que sea realmente un problema si recibe notificaciones adicionales por evento que no necesita. – njzk2