Wie man Kontakte in der Reihenfolge Ihrer kommenden Geburtstage?

Ich habe code zu Lesen, den Kontaktdaten und zum Lesen Geburtstage. Aber wie bekomme ich eine Liste von Kontakten in der Reihenfolge Ihrer bevorstehenden Geburtstag?

Für einen einzelnen Kontakt identifiziert id, bekomme ich die details und den Geburtstag so:

Cursor c = null;
  try {
   Uri uri = ContentUris.withAppendedId(
     ContactsContract.Contacts.CONTENT_URI, id);
   c = ctx.getContentResolver().query(uri, null, null, null, null);
   if (c != null) {
    if (c.moveToFirst()) {
     DatabaseUtils.cursorRowToContentValues(c, data);
    }

   }
   c.close();

   //read birthday
   c = ctx.getContentResolver()
     .query(
       Data.CONTENT_URI,
       new String[] { Event.DATA },
       Data.CONTACT_ID + "=" + id + " AND "
         + Data.MIMETYPE + "= '"
         + Event.CONTENT_ITEM_TYPE + "' AND "
         + Event.TYPE + "=" + Event.TYPE_BIRTHDAY,
       null, Data.DISPLAY_NAME);
   if (c != null) {
    try {
     if (c.moveToFirst()) {
      this.setBirthday(c.getString(0));
     }
    } finally {
     c.close();
    }
   }

   return super.load(id);
  } catch (Exception e) {
   Log.v(TAG(), e.getMessage(), e);
   e.printStackTrace();
   return false;
  } finally {
   if (c != null)
    c.close();
  }

und den code Lesen Sie alle Kontakte:

public Cursor getList() {
        //Get the base URI for the People table in the Contacts content
        //provider.
        Uri contacts = ContactsContract.Contacts.CONTENT_URI;
        //Make the query.
        ContentResolver cr = ctx.getContentResolver();
        //Form an array specifying which columns to return.
        String[] projection = new String[] { ContactsContract.Contacts._ID,
                ContactsContract.Contacts.DISPLAY_NAME };

        Cursor managedCursor = cr.query(contacts, projection, null, null,
                ContactsContract.Contacts.DISPLAY_NAME
                        + " COLLATE LOCALIZED ASC");
        return managedCursor;
    }
InformationsquelleAutor Pentium10 | 2010-03-20
Schreibe einen Kommentar