繁体   English   中英

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

[英]How to get contact that is deleted or updated from device contact list in android

我希望从设备联系人列表中删除或更新联系人。我使用了内容观察者,但未获取正在更新或删除的联系人的任何详细信息。

那么是否有任何监听器,以便我们可以获得在设备联系人列表中删除或更新的联系人或在删除或更新联系人时从系统触发的任何操作。

更新

实际上我的申请要求是:

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

在此输入图像描述在此输入图像描述在此输入图像描述

如果用户删除该联系人,那么我的应用程序需要删除联系信息

正如你建议我使用内容观察者和查找uri但使用这个我只知道联系人是删除但没有获得有关该删除联系人的任何信息。

那么有没有办法获取删除联系信息。

提前致谢

答案是ContentObserver ,它是您正在寻找的,您可以检查此线程以进一步使用ContentObserver

进一步链接ContentObserver的示例, Observing content

更新:

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

您可以使用Loookup URI您感兴趣的特定Uri注册ContentObserver

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

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

 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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM