Search code examples
androidandroid-calendar

CalendarProvider, how to get meeting's owner name?


I need to get the meeting's owner name from the CalendarProvider. I've found these two rows:

CalendarContract.Events.ORGANIZER,
CalendarContract.Events.OWNER_ACCOUNT 

But they return only creator's email.

How can I fetch the creator's name?


Solution

  • After you quired all needed events, when you are in Cursor loop, for every event you can get a name by this method:

    private String getOrganizerNameFromAttendees(int eventId, String organizerMail) {
        Logger.e(TAG, "getOrganizerNameFromAttendees");
        final String[] args = new String[]{String.valueOf(eventId), organizerMail};
        final Cursor cursor = mApplicationContext.getContentResolver().query(CalendarContract.Attendees.CONTENT_URI, ATTENDEE_PROJECTION, ATTENDEE_SELECTION, args, null);
    
        String name = null;
        try {
            while (cursor.moveToNext()) {
                String nameFromAttendees = cursor.getString(ATTENDEE_PROJECTION_NAME_INDEX);
                String mailFromAttendees = cursor.getString(ATTENDEE_PROJECTION_MAIL_INDEX);
                name = TextUtils.isEmpty(nameFromAttendees) ? mailFromAttendees : nameFromAttendees;
            }
        } catch (Exception e) {
            Logger.e(TAG, "getOrganizerNameFromAttendees, exception = " + e.getMessage());
        } finally {
            if (cursor != null) {
                cursor.close();
            }
        }
        return name;
    }