0
當聯繫人被修改時,我可以捕捉到事件。但我想知道修改後的聯繫方式,如CONTACT_ID,姓名等......請幫助我做到這一點。我的代碼是按照。如何使我的Android ContentObserver檢測到更改的聯繫人詳細信息(添加,更新或刪除)?
public class TestContentObserver extends Activity {
int contactCount = 0;
final String[] projection = new String[] { RawContacts.CONTACT_ID, RawContacts.DELETED };
Cursor curval;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
curval = getContentResolver().query(RawContacts.CONTENT_URI, projection, null, null, null);
contactCount = curval.getCount();
curval.registerContentObserver(new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
getChangedContactDetails();
}
@Override
public boolean deliverSelfNotifications() {
return true;
}
});
}
public void getChangedContactDetails(){
// how can I catch the affected contact details
}
}
獨特的,如果有什麼新的聯繫人添加@Maggie –
你試過嗎?我已經嘗試了各種各樣的配置,但還沒有設法讓它工作。我只是使用URI「content:// com.android.contacts/contacts'調用每個內容觀察者。 – chetbox
這是一個不好的答案,因爲內容解析器如何處理這些URI是有問題的。你會認爲onChange()會被改變的聯繫人的lookupUri調用,但這不是演員。 content://com.android.contacts/contacts是返回的URI。 – ComputerEngineer88