如何在android中获取从设备联系人列表中删除或更新的联系人

如何在android中获取从设备联系人列表中删除或更新的联系人,android,Android,我想获取从设备联系人列表中删除或更新的联系人。我已使用content observer,但未获取正在更新或删除的联系人的任何详细信息 所以,是否有任何侦听器,以便我们可以获取设备联系人列表中正在删除或更新的联系人,或者在删除或更新联系人时从系统触发的任何操作 更新: 实际上,我的申请要求是: 如果用户在设备联系人列表中删除联系人或更新联系人,如 如果用户删除该联系人,则我的应用程序要求删除该联系人信息 正如您建议我使用content observer和lookup uri,但使用它,我只知道

我想获取从设备联系人列表中删除或更新的联系人。我已使用content observer,但未获取正在更新或删除的联系人的任何详细信息

所以,是否有任何侦听器,以便我们可以获取设备联系人列表中正在删除或更新的联系人,或者在删除或更新联系人时从系统触发的任何操作

更新

实际上,我的申请要求是:

如果用户在设备联系人列表中删除联系人或更新联系人,如

如果用户删除该联系人,则我的应用程序要求删除该联系人信息

正如您建议我使用content observer和lookup uri,但使用它,我只知道联系人是delete,但无法获取有关该delete联系人的任何信息

那么,有没有办法获取或删除联系人信息呢


提前感谢

答案是
ContentObserver
,这是您正在寻找的内容,您可以查看此线程以进一步了解

有关
ContentObserver
示例的进一步链接,

更新:

-如果应用程序需要维护对联系人的引用,则应使用查找键而不是传统的行ID。您可以从联系人本身获取查找键,它是
Contacts contract.Contacts
表中的一列

您可以注册
ContentObserver
以获取您感兴趣使用的特定
Uri

Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.
                                                   CONTENT_LOOKUP_URI,lookupKey);
getContentResolver().registerContentObserver(lookupUri, false, myObserver);

首先,您需要在主活动中注册此接收器--

之后
感谢您的快速回复,但我使用Content Observer对我没有任何用处,因为我想要更新或删除联系人的详细信息,而这正是Content Observer不给我的。您使用了什么?您在这方面遇到了什么问题?我使用了ContentObserver。然后,当我们在设备的联系人列表中添加联系人时,会调用ContentObserver的onchage方法,但此方法不提供该联系人的详细信息。因此,我从何处获取添加联系人的详细信息。删除和编辑联系人也是必需的。这是我获取或编辑联系人的问题不是。编辑了我的答案,希望你正在寻找查找Uri的概念。谢谢你的快速回复,但我的应用程序要求在更新问题中显示。所以有什么解决方案吗?如果有,请建议我。嘿,vijay,你是如何解决这个问题的。提前谢谢。
 getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,new MyCOntentObserver());
public class MyCOntentObserver extends ContentObserver {

    public MyCOntentObserver() {
        super(null);
    }

    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);
        Log.d("onChange1", "~~~~~~" + selfChange);

        //getApplicationContext().startService(new Intent(MainActivity.this, SendContactService.class));
    }

    @Override
    public boolean deliverSelfNotifications() {
        Log.d("deliverSelfNotifications", "~~~~~~fg");
        return true;
    }
}