Android - 有没有办法知道用户何时向手机添加新联系人?

时间:2013-04-21 17:32:17

标签: android android-intent contact

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

1 个答案:

答案 0 :(得分: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回调方式收到通知。

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