Eventos do calendário por sqlite

6 respostas
fabriciov

Alguem por acaso saberia fazer uma query no sqlite de eventos do calendário de um certo periodo ? (ex: eventos de hoje até 7 dias a frente)
Sou horrível em sql, procurei no subforum de android e não achei nada.

Obrigado desde já :slight_smile:

6 Respostas

V

SELECT * FROM SUA_TABELA WHERE SEU_CAMPO_DATA BETWEEN CURRENT_DATE AND (CURRENT_DATE + 8)

Pelo menos no FireBird é assim, nunca testei no SQLite, mas deve servir, afinal o sql é padrão :]

V

Opa em vez de 8 é 7 :stuck_out_tongue:

fabriciov

Obrigado, vou tentar aqui… :slight_smile:

fabriciov

Fiz por cursor mesmo, mas deu um problema aqui..

String[] projection = new String[] {
                CalendarContract.Events._ID, CalendarContract.Events.TITLE,
                CalendarContract.Events.DESCRIPTION, CalendarContract.Events.DTSTART,
                CalendarContract.Events.DTEND, CalendarContract.Events.EVENT_LOCATION
        };

                Cursor cursor = context.getContentResolver()
                .query(Uri.parse("content://com.android.calendar/events"),
                        projection,
                        null,
                        null,
                        null);

Ele so retorna os eventos que estão no celular, ignorando os eventos sincronizados de outro lugar (FB, Google acc, etc)
Gostaria de pegar tudo, se é que tenho permissão..

V

Vixe, nunca tentei fazer isto :frowning:

fabriciov

so para constar.. consegui:

public static void QueryEvents(Context context, Calendar c_start,
            Calendar c_end, IQueryListener listener) {
        if (context != null && c_start != null && c_end != null && listener != null) {
            String[] proj =
                    new String[] {
                            Instances._ID,
                            Instances.TITLE,
                            Instances.BEGIN,
                            Instances.END,
                            Instances.DTSTART,
                            Instances.DTEND,
                            Instances.DESCRIPTION,
                            Instances.EVENT_LOCATION,
                            Instances.OWNER_ACCOUNT,
                            Instances.STATUS,
                            Instances.ORGANIZER,
                    };

            Cursor cursor = Instances.query(context.getContentResolver(), proj,
                    c_start.getTimeInMillis(), c_end.getTimeInMillis());
          cursor.moveToFirst();

Consigo pegar todos os eventos, sincronizados ou não.

Criado 22 de julho de 2013
Ultima resposta 23 de jul. de 2013
Respostas 6
Participantes 2