[英]How to listen and get data for changes in Contact Database
我試圖在聯系人數據庫中偵聽任何更改(添加/更新)。 而且我還想獲取發生更改時的聯系人數據(ContactID,displayName,phoneNumber)。
我創建了一個類,用於偵聽TestContentObserver對聯系人數據庫的任何更改。 但是它僅在聯系人數據庫發生更改時通知我,而沒有通知我數據已更改嗎?
import android.app.Activity;
import android.database.ContentObserver;
import android.os.Bundle;
import android.provider.Contacts.People;
public class TestContentObserver extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.getApplicationContext().getContentResolver().registerContentObserver (People.CONTENT_URI, true, contentObserver);
}
private class MyContentObserver extends ContentObserver {
public MyContentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
}
}
MyContentObserver contentObserver = new MyContentObserver();
}
當聯系人已更新或添加時,我想獲取聯系人的數據信息(contactId,)。 你能給我個建議嗎?
您可以在onChange()方法中添加類似的內容以獲取contactId:
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null,
null, null, null);
if (!cursor.moveToFirst())
return;
cursor.moveToLast();
do{
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}while (cursor.moveToPrevious()) ;
希望它能提供一些想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.