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 コールバック メソッドを介して通知されます。

ただし、問題の 1 つは、追加だけでなく、変更 (編集/削除) についても通知されることです。そのための特定の簡単な方法(連絡先を自分で追跡できる最悪の方法として)があるかどうかはわかりません.

于 2013-04-21T17:36:57.890 に答える