gpt4 book ai didi

Android - 仅获取添加的最新联系人

转载 作者:搜寻专家 更新时间:2023-11-01 08:25:32 24 4
gpt4 key购买 nike

我知道如何从用户设备中检索联系人。但我想知道是否有一种方法可以查询联系人表并只获取添加的最新联系人?

我想做的是:

在我的应用程序中,我从设备读取联系人并将它们保存在我的应用程序的数据库中,因此用户可以选择哪些是该应用程序中的收藏夹联系人。下次用户进入联系人 Activity 时,我会从数据库中读取数据。

现在,我想添加一个刷新按钮,所以当用户点击它时,联系人列表将更新为新联系人。所以我不想再次读取整个联系人表。我只想检索最新的添加或更改的联系人(在设备中)。

有什么办法可以实现吗?

我看到的唯一与这个问题有某种关联的字段是“VERSION”和“DATA_VERSION

所以我想我还需要在我的数据库中保存每个联系人行的版本以及用户何时点击刷新我需要比较它以查看是否有任何变化..但在这种情况下我需要再次从设备中读取所有联系人...

最佳答案

你可以使用ContentObserver实现,但是你无法获取更新了哪个联系人,你只能获取通知你的本地联系人已更新。

getContentResolver().registerContentObserver(
ContactsContract.Contacts.CONTENT_URI, false, new AddressBookContentObserver());

/**
* Content observer for Address book contacts change notification.
*
* @author malik
*/
public class AddressBookContentObserver extends ContentObserver {
public AddressBookContentObserver() {
super(null);
}

@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
if (DBG) {
ZKLog.d(TAG, "Contacts changes event.");
}
// We are waiting for some time, Native contact taking some time ot update, before that
// if we try to fetch the contact, its not returning the newly added contact
Timer timer = new Timer();

timer.schedule(new TimerTask() {
@Override
public void run() {
// go through all the contact and check which one is missing or modified or added from your database.
}
}, 1000);
}

@Override
public boolean deliverSelfNotifications() {
return true;
}
}

注意:

We can't get which contact is added, modified or deleted

关于Android - 仅获取添加的最新联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45658649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com