如何从contentresolver获取特定联系人注意事项?

时间:2013-12-27 21:50:00

标签: android get contacts android-contentresolver

我需要获得一个特定联系人的说明,我有他的身份证和他的名字。 无论我正在尝试什么,只有在尝试在Google上找到类似的答案并在此处获得类似的答案后,我才会在结束时获取NULL并且我没有选择..

请帮助:) 这是我的代码:

               Cursor noteCur = cr.query(ContactsContract.Data.CONTENT_URI, null,

          ContactsContract.CommonDataKinds.Note.CONTACT_ID+"='"+id+"'", null, null);
           noteCur.moveToFirst();
           note = noteCur.getString(
                   noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
           mContactList.get(mContactList.size()-1).setNote(note);//Adding the contact Note
           System.out.println("Note " + note);
           noteCur.close();

如果我从我的应用程序中添加联系人并在Add方法中指定一个Note,那么Note将被转移并成功显示

但是,如果我在关闭并打开应用程序后尝试获取此特定联系人的注意事项,我无法得到它的注意事项,我得到的只是NULL:(

Note在其他联系人应用程序中可见,所以问题是我试图在我自己的应用程序中获取Note ..

谢谢!

1 个答案:

答案 0 :(得分:1)

如果有人有兴趣就知道了。

try {
          Cursor cursor = contentResolver.query(
                  ContactsContract.Data.CONTENT_URI, 
                  null, 
                  CommonDataKinds.Note.CONTACT_ID +" = ?", 
                  new String[]{contactId}, null);

          while (cursor.moveToNext()) 
          {
              note = cursor.getString(cursor.getColumnIndex(CommonDataKinds.Note.NOTE));
          } 
          System.out.println("Note " + note);
          cursor.close();
          } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

其中“contactId”是特定联系人的ID。