如何从android中的联系簿获取注释值

时间:2012-09-21 05:14:27

标签: android android-contacts

我想让我的应用程序从Android手机的联系簿中获取值。

我尝过了人,ContactContracts.DataContactContracts.Contact.DataContactsContract.CommonDataKinds从电话簿中读取NOTE值的值。 但是不能成功。请帮助我。

1 个答案:

答案 0 :(得分:1)

使用以下代码获取联系人的注释值。

Cursor cursor = getContentResolver().query(
        ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
cursor.moveToFirst();

for (int i=0; i<cursor.getCount(); i++){
    System.out.println("Hello");
    String contactId = cursor.getString(
            cursor.getColumnIndex(ContactsContract.Contacts._ID));

    String note = null;
    String[] columns = new String[] { ContactsContract.CommonDataKinds.Note.NOTE };
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " +
            ContactsContract.Data.MIMETYPE + " = ?";
    String[] whereParameters = new String[] {
            contactId, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE };
    Cursor contacts = getContentResolver().query(
            ContactsContract.Data.CONTENT_URI, columns, where,
            whereParameters, null);

    if (contacts.moveToFirst()) {
        String rv = contacts.getString(0);
        note = rv;
    } else{
        String rv = contacts.getString(i);
        note = rv;
    }
    contacts.close();
    System.out.println("Note is: " + note);

    cursor.moveToNext();            
}