带URI的ContentObserver不适用于API级别16的联系人

时间:2013-03-18 08:00:22

标签: uri android-4.2-jelly-bean contentobserver

我正在尝试以下代码:

private class NativeContentObserver extends ContentObserver  {
      public NativeContentObserver() {
         super(null);
      }

      @Override
      public void onChange(boolean selfChange, Uri uri) {
         super.onChange(selfChange, uri);
         Log.i(TAG, "uri is "+uri);
}

{
NativeContentObserver contentObserver = new NativeContentObserver();
mContext.getContentResolver().registerContentObserver(
           ContactsContract.Contacts.CONTENT_URI, true, contentObserver);
}

当我运行此代码并编辑联系人时,我看到了

uri是内容://com.android.contacts

为什么我没有在URI中获取个人联系人的ID?如果我尝试使用SMS观察者,我会得到包含ID的正确URI。 我在这里缺少什么?这是在三星S3手机上。

1 个答案:

答案 0 :(得分:0)

很可能是因为提供者更新方法使用完整的URI调用notifyChange(uri),而不是使用过滤的方法。如果是这种情况,则表示不推荐使用ContactsContract.Contacts。寻找替代品