Ho registrato un servizio ContentObserver
e ottengo la funzione onchange()
quando c'è un aggiornamento nel telefono come la chiamata o l'aggiornamento del contatto. Ma voglio che la funzione onchange()
venga chiamata solo quando si verifica l'aggiunta, l'aggiornamento o l'eliminazione. Ma non voglio quando la chiamata è in arrivo o in uscita. Quindi qualcuno può dirmi quale URI
posso registrare in contentObserver
? Il mio codice è quiContentObserver per l'aggiornamento dei contatti manualmente
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,new Contact_change());
e la classe Contact_change.java è come
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;
}
}
Edit:
ho un altro problema è che dopo arrestare il servizio se ho fatto il cambiamento in contatto poi anche onchange()
chiamata. Quindi, come posso interrompere la registrazione o la registrazione di contentobserver
.
non credo che questo sia possibile. il tempo dell'ultima chiamata è un campo del contatto, quindi cambiarlo sta cambiando il contatto – njzk2
E 'un altro modo per ottenere la notifica delle modifiche in contatto? Perché voglio sincronizzare i contatti con la mia applicazione. – Nency
Non penso che sia davvero un problema se ricevi notifiche extra per eventi di cui non hai bisogno. – njzk2