1

我想知道每次用户将新联系人添加到他的联系人列表时是否存在一种方式(意图等)。谢谢!

4

1 回答 1

2

使用ContentObserver在内容提供程序中进行更改时得到通知。以下可用于了解通讯录的变化

声明内容观察者

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 回调方法通知您。

但一个问题是您不仅会收到添加通知,还会收到任何更改(编辑/删除)的通知。我不确定是否有任何具体的简单方法(作为最糟糕的方法,你可以自己跟踪联系人)。

于 2013-04-21T17:36:57.890 回答