从日历中获取事件 [英] Getting events from calendar

查看:116
本文介绍了从日历中获取事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题是,我一定要在我想要阅读的谷歌日历的事件之一演示应用程序,对于我已经手工插入类似事件的标题,事件的时间发生的事件和的细节整个事件。现在我只是需要这些事件形成的日历。 对于我试图用G code(谷歌code)API,它提供了日历API类。但我仍不能能够读取这些事件。

my issue is, i have to make one demo application in which i wants to read the events of the google calendar , for that i have manually insert the events like the title of event,the time of events and the details of the whole events. now i need to just those events form that calendar . for that i have tried to use the gcode(google code)api which is provide the calendar api class. but still i cant able to reads those events..

推荐答案

好吧,我发现这个整体的概念,即如何使用谷歌日历应用集成与Android手机的答案。

Ok i found the answer of this whole of the concept that how to use the google calendar application integration with the android phone.

code: -

首先,你设置这行,将去读取日历活动构成其他类构成的类,它是当前是ApplicationSettings.java。

first you set this line which will goes to read the calendar events form the other class form your class which is current is the ApplicationSettings.java .

calendar.readCalendar(ApplicationSettings.this);

package com.mycalendarevents.android;

import java.util.Date;
import java.util.HashSet;
import java.util.regex.Pattern;

import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.text.format.DateUtils;

public class ReadCalendar 
{
static Cursor cursor;

public static void readCalendar(Context context) {

    ContentResolver contentResolver = context.getContentResolver();

    // Fetch a list of all calendars synced with the device, their display names and whether the

    cursor = contentResolver.query(Uri.parse("content://com.android.calendar/calendars"),
                (new String[] { "_id", "displayName", "selected"}), null, null, null);

    HashSet<String> calendarIds = new HashSet<String>();

    try
    {
        System.out.println("Count="+cursor.getCount());
        if(cursor.getCount() > 0)
        {
            System.out.println("the control is just inside of the cursor.count loop");
        while (cursor.moveToNext()) {

             String _id = cursor.getString(0);
             String displayName = cursor.getString(1);
             Boolean selected = !cursor.getString(2).equals("0");

            System.out.println("Id: " + _id + " Display Name: " + displayName + " Selected: " + selected);
            calendarIds.add(_id);
        }
    }
    }
    catch(AssertionError ex)
    {
        ex.printStackTrace();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }


    // For each calendar, display all the events from the previous week to the end of next week.        
    for (String id : calendarIds) {
        Uri.Builder builder = Uri.parse("content://com.android.calendar/instances/when").buildUpon();
        //Uri.Builder builder = Uri.parse("content://com.android.calendar/calendars").buildUpon();
        long now = new Date().getTime();

        ContentUris.appendId(builder, now - DateUtils.DAY_IN_MILLIS * 10000);
        ContentUris.appendId(builder, now + DateUtils.DAY_IN_MILLIS * 10000);

        Cursor eventCursor = contentResolver.query(builder.build(),
                new String[]  { "title", "begin", "end", "allDay"}, "Calendars._id=" + 1,
                null, "startDay ASC, startMinute ASC");

        System.out.println("eventCursor count="+eventCursor.getCount());
        if(eventCursor.getCount()>0)
        {

            if(eventCursor.moveToFirst())
            {
                do
                {
                    Object mbeg_date,beg_date,beg_time,end_date,end_time;  

                    final String title = eventCursor.getString(0);
                    final Date begin = new Date(eventCursor.getLong(1));
                    final Date end = new Date(eventCursor.getLong(2));
                    final Boolean allDay = !eventCursor.getString(3).equals("0");

            /*  System.out.println("Title: " + title + " Begin: " + begin + " End: " + end +
                        " All Day: " + allDay);
            */  
                    System.out.println("Title:"+title);
                    System.out.println("Begin:"+begin);
                    System.out.println("End:"+end);
                    System.out.println("All Day:"+allDay);

                /* the calendar control metting-begin events Respose  sub-string (starts....hare) */    

                      Pattern p = Pattern.compile(" ");
                      String[] items = p.split(begin.toString());
                      String scalendar_metting_beginday,scalendar_metting_beginmonth,scalendar_metting_beginyear,scalendar_metting_begindate,scalendar_metting_begintime,scalendar_metting_begingmt;

                      scalendar_metting_beginday = items[0];
                      scalendar_metting_beginmonth = items[1];
                      scalendar_metting_begindate = items[2];
                      scalendar_metting_begintime = items[3];
                      scalendar_metting_begingmt = items[4];
                      scalendar_metting_beginyear = items[5];


                    String  calendar_metting_beginday = scalendar_metting_beginday;
                    String  calendar_metting_beginmonth = scalendar_metting_beginmonth.toString().trim();

                    int  calendar_metting_begindate = Integer.parseInt(scalendar_metting_begindate.trim());

                    String calendar_metting_begintime = scalendar_metting_begintime.toString().trim();
                     String calendar_metting_begingmt = scalendar_metting_begingmt;
                     int calendar_metting_beginyear = Integer.parseInt(scalendar_metting_beginyear.trim());


                      System.out.println("calendar_metting_beginday="+calendar_metting_beginday);

                      System.out.println("calendar_metting_beginmonth ="+calendar_metting_beginmonth);

                      System.out.println("calendar_metting_begindate ="+calendar_metting_begindate);

                      System.out.println("calendar_metting_begintime="+calendar_metting_begintime);

                      System.out.println("calendar_metting_begingmt ="+calendar_metting_begingmt);

                      System.out.println("calendar_metting_beginyear ="+calendar_metting_beginyear);

                      /* the calendar control metting-begin events Respose  sub-string (starts....ends) */  

                    /* the calendar control metting-end events Respose  sub-string (starts....hare) */  

                      Pattern p1 = Pattern.compile(" ");
                      String[] enditems = p.split(end.toString());
                      String scalendar_metting_endday,scalendar_metting_endmonth,scalendar_metting_endyear,scalendar_metting_enddate,scalendar_metting_endtime,scalendar_metting_endgmt;

                      scalendar_metting_endday = enditems[0];
                      scalendar_metting_endmonth = enditems[1];
                      scalendar_metting_enddate = enditems[2];
                      scalendar_metting_endtime = enditems[3];
                      scalendar_metting_endgmt = enditems[4];
                      scalendar_metting_endyear = enditems[5];


                    String  calendar_metting_endday = scalendar_metting_endday;
                    String  calendar_metting_endmonth = scalendar_metting_endmonth.toString().trim();

                    int  calendar_metting_enddate = Integer.parseInt(scalendar_metting_enddate.trim());

                    String calendar_metting_endtime = scalendar_metting_endtime.toString().trim();
                     String calendar_metting_endgmt = scalendar_metting_endgmt;
                     int calendar_metting_endyear = Integer.parseInt(scalendar_metting_endyear.trim());


                      System.out.println("calendar_metting_beginday="+calendar_metting_endday);

                      System.out.println("calendar_metting_beginmonth ="+calendar_metting_endmonth);

                      System.out.println("calendar_metting_begindate ="+calendar_metting_enddate);

                      System.out.println("calendar_metting_begintime="+calendar_metting_endtime);

                      System.out.println("calendar_metting_begingmt ="+calendar_metting_endgmt);

                      System.out.println("calendar_metting_beginyear ="+calendar_metting_endyear);

                      /* the calendar control metting-end events Respose  sub-string (starts....ends) */    

                    System.out.println("only date begin of events="+begin.getDate());
                    System.out.println("only begin time of events="+begin.getHours() + ":" +begin.getMinutes() + ":" +begin.getSeconds());

                    System.out.println("only date begin of events="+end.getDate());
                    System.out.println("only begin time of events="+end.getHours() + ":" +end.getMinutes() + ":" +end.getSeconds());

                    beg_date = begin.getDate();
                    mbeg_date = begin.getDate()+"/"+calendar_metting_beginmonth+"/"+calendar_metting_beginyear;
                    beg_time = begin.getHours();

                    System.out.println("the vaule of mbeg_date="+mbeg_date.toString().trim());
                    end_date = end.getDate();
                    end_time = end.getHours();


                    CallHandlerUI.metting_begin_date.add(beg_date.toString());
                    CallHandlerUI.metting_begin_mdate.add(mbeg_date.toString());

                    CallHandlerUI.metting_begin_mtime.add(calendar_metting_begintime.toString());

                    CallHandlerUI.metting_end_date.add(end_date.toString());
                    CallHandlerUI.metting_end_time.add(end_time.toString());
                    CallHandlerUI.metting_end_mtime.add(calendar_metting_endtime.toString());

                }
                while(eventCursor.moveToNext());
            }
        }
        break;
    }
}

}

下面是整个的code是要贴这将只读取每一个事件形成你的日历与回发网址这是2.2及以上版本的帮助:

here is the whole of the code is to be posted which will simply reads each and every events form your calendar with the help of that postback url which is for 2.2 and above version:

Uri.parse("content://com.android.calendar/instances/when").buildUpon();

PL找到下这些版本低则2.2的Andr​​oid和使用这些事件,你需要的地方......

pl find the under those version lower then 2.2 in android and use those events as you required place...

这篇关于从日历中获取事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆