Мне было интересно, существует ли способ (намерение или подобное) знать каждый раз, когда пользователь добавляет новый контакт в свой список контактов. Спасибо!Android. Есть ли способ узнать, когда пользователь добавляет новый контакт на свой телефон?
1
A
ответ
2
использовать ContentObserver, чтобы получать уведомления об изменениях в поставщике содержимого. Следующие объяснения могут быть использованы, чтобы узнать об изменении контактной книги
Объявите контента Observer
private final ContentObserver contentObserver = new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
perform your task;
}
}
Регистрация наблюдателя с android.provider.ContactsContract.Contacts.CONTENT_URI, чтобы получать уведомления об изменении контактного
this.getApplicationContext()
.getContentResolver()
.registerContentObserver(
android.provider.ContactsContract.Contacts.CONTENT_URI,
true, contentObserver);
Не забудьте, чтобы отменить его в OnDestroy
this.getApplicationContext().getContentResolver()
.unregisterContentObserver(contentObserver);
При изменении системной телефонной книги вы будете уведомлены через метод обратного вызова onChange.
Но одна проблема заключается в том, что вы будете уведомлены не только о добавлении, но и о любых изменениях (редактировать/удалять). Я не уверен, есть ли какой-либо конкретный простой способ (как наихудший способ отслеживать контакты самостоятельно).