【问题标题】:How do I make my Android ContentObserver for detect changed contact detail (added, updated or deleted)?如何让我的 Android ContentObserver 检测更改的联系人详细信息(添加、更新或删除)?
【发布时间】:2011-11-27 14:21:32
【问题描述】:

当联系人被修改时,我可以捕捉到事件。但我想捕捉修改后的联系方式,如 CONTACT_ID、姓名等……请你帮我做。我的代码如下。

public class TestContentObserver extends Activity {
    int contactCount = 0;
    final String[] projection = new String[] { RawContacts.CONTACT_ID, RawContacts.DELETED };
    Cursor curval;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        curval = getContentResolver().query(RawContacts.CONTENT_URI, projection, null, null, null);
        contactCount = curval.getCount();

        curval.registerContentObserver(new ContentObserver(new Handler()) {
            @Override
            public void onChange(boolean selfChange) {
                getChangedContactDetails();
            }
            @Override
            public boolean deliverSelfNotifications() {
                return true;
            }
        });

    }



    public void getChangedContactDetails(){
        // how can I catch the affected contact details
    }
}

【问题讨论】:

    标签: android


    【解决方案1】:

    看看:http://developer.android.com/resources/articles/contacts.html,“查找 URI”部分

    在注册您的 ContentObserver 时,您只需注册一个直接指向您感兴趣的联系人的 URI。然后您的观察者只会在您感兴趣的联系人被修改时收到通知。

    Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
    getContentResolver().registerContentObserver(lookupUri, false, new ContentObserver(){});
    

    查找键键对于每条记录都是唯一的

    【讨论】:

    • 如果添加了新联系人@Maggie 会怎样
    • 你试过了吗?我已经尝试了各种配置,但没有设法让它工作。我只是让每个内容观察者都使用 URI content://com.android.contacts/contacts 调用。
    • 这是一个糟糕的答案,因为内容解析器处理这些 URI 的方式有问题。您可能会认为 onChange() 会被调用时使用已更改联系人的 lookupUri,但这不是演员表。 content://com.android.contacts/contacts 是返回的 URI。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2014-07-11
    • 2012-02-21
    • 2012-08-27
    相关资源
    最近更新 更多