gpt4 book ai didi

Android 你如何检测哪个联系人发生了变化?

转载 作者:可可西里 更新时间:2023-11-01 19:07:48 26 4
gpt4 key购买 nike

有没有办法确定更改了哪个联系人?

我知道我可以为 URI 注册一个 ContentObserver,但它只会在某些内容发生变化时触发,我应该如何知道哪个联系人发生了变化以及该联系人发生了什么变化?有办法查出来吗?

我的应用涉及桌面客户端,我不希望每次连接时都将所有联系人发送到桌面。所以我想跟踪自上次桌面连接以来发生的变化。

提前致谢!

附注我正在使用 API 级别 5+

最佳答案

不,没有办法知道哪个联系人发生了变化

c&p 来 self 与此主题相关的回复 here

我的应用程序基类中有这段代码。

private ContentObserver contactObserver = new ContactObserver();

private class ContactObserver extends ContentObserver {

public ContactObserver() {
super(null);
}

@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);

// Since onChange do not sent which user have been changed, you
// have to figure out how to match it with your data.
// Note: Contact is one of my classes.
for (Contact contact : getContacts()) {
if (!contact.isLinked())
continue;

String selection = ContactsContract.Data._ID + " = ?";
String[] selectionArgs = new String[] { contact.getSystemId() };
String[] projection = new String[] { ContactsContract.Data.DISPLAY_NAME };
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, projection,
selection, selectionArgs, null);

if (!cursor.moveToFirst())
return;

String name = cursor.getString(0);

if (contact.getUsername().equalsIgnoreCase(name))
continue;

contact.setUserName(name);

}
}
}

关于您可以在投影检查中放入什么 here

希望对你有帮助

关于Android 你如何检测哪个联系人发生了变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751351/

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