Android 2.2联系生日日期

时间:2011-09-11 07:50:11

标签: android contactscontract

我想从android 2.2的联系方式获取生日日期,有人可以帮我查询一下。

这是我的代码:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView contactView = (TextView) findViewById(R.id.contactview);

        Cursor cursor = getContacts();
        while (cursor.moveToNext()) {

            String displayBirthday = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
            contactView.append("Birthday: ");
            contactView.append(displayBirthday);
            contactView.append("\n");
        }

    }

    private Cursor getContacts() {
        // Run query
        Uri uri = ContactsContract.Data.CONTENT_URI;

        String[] projection = new String[] {
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Event.CONTACT_ID,
                ContactsContract.CommonDataKinds.Event.START_DATE
        };

        String where =
                ContactsContract.Data.MIMETYPE + "= ? AND " +
                ContactsContract.CommonDataKinds.Event.TYPE + "=" + ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
        String[] selectionArgs = new String[] {ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE};
        String sortOrder = null;
        return managedQuery(uri, projection, where, selectionArgs, sortOrder);
    }

这段代码似乎有问题,我在屏幕上没有任何输出。

我添加了AndroidManifest.xml

有人可以给我一些暗示我的查询有什么问题,非常感谢。

祝你好运, 约翰尼

1 个答案:

答案 0 :(得分:3)

我运行了你的代码,似乎工作正常。

这是输出屏幕截图,SGS 2.3.3

这是屏幕截图:enter image description here