2013-10-11 2 views
0

Мне нужно интегрировать события календаря Google (операции CRUD) в моем приложении. Сначала я подумал о том, чтобы использовать контент-провайдеры для доступа к данным о событиях из локального приложения календаря. Но я обнаружил, что поставщик календаря поддерживается только ICS (api 14). 1) Есть ли способ получить доступ к поставщику календаря в нижних версиях? 2) Можно ли использовать google calender api (https://developers.google.com/google-apps/calendar/) в android ??Как интегрировать события календаря

ответ

1

Чтобы получить календар события Chack ниже код работает:

private void getCalenderEvents() { 
     Cursor cursor = context.getContentResolver().query(Uri.parse("content://com.android.calendar/events"), 
       new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }, null, null, null); 
     cursor.moveToFirst(); 
     // fetching calendars name 
     String CNames[] = new String[cursor.getCount()]; 

     for (int i = 0; i < CNames.length; i++) { 

      rowDataEvents = new HashMap<String, String>(); 

      String eventTitle = cursor.getString(1); 
      String eventStartDate = cursor.getString(3); 
      String eventEndDate = cursor.getString(4); 
      String eventDescription = cursor.getString(2); 
      String eventLocation = cursor.getString(5); 
      cursor.moveToNext(); 

     } 
     cursor.close(); 
    } 
+0

спасибо, это то, что мне нужно .. – lingareddyk

+0

okkk пожалуйста upvote ответ. –

0
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

import java.util.Calendar; 

public class MainActivity extends Activity { 

    Button disp,add; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     disp = (Button) findViewById(R.id.dispbut); 
     add = (Button) findViewById(R.id.btn1); 
     disp.setOnClickListener(new View.OnClickListener() 



     { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       disp(); 
      } 
     }); 


     add.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       add(); 
      } 


     }); 
    } 

    public void disp() { 
     Calendar startTime = Calendar.getInstance(); 
     startTime.set(2013, 2, 13, 11, 35); 
     Uri uri = Uri.parse("content://com.android.calendar/time/" 
       + String.valueOf(startTime.getTimeInMillis())); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     // Use the Calendar app to view the time. 
     startActivity(intent); 
    } 

    public void add(){ 

     Calendar cal = Calendar.getInstance(); 
     Intent intent = new Intent(Intent.ACTION_EDIT); 
     intent.setType("vnd.android.cursor.item/event"); 
     intent.putExtra("beginTime", cal.getTimeInMillis()); 
     intent.putExtra("allDay", true); 
     intent.putExtra("rrule", "FREQ=YEARLY"); 
     intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000); 
     intent.putExtra("title", "Test Event"); 
     intent.putExtra("description", "This is a sample description"); 
     startActivity(intent); 
    } 



} 
-1
<uses-permission android:name="android.permission.WRITE_CALENDAR" /> 
    <uses-permission android:name="android.permission.READ_CALENDAR" /> 


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/dispbut" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:text="Display Event" /> 
    <Button 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Add An Event" /> 

</RelativeLayout> 
+0

Ваш ответ будет улучшен путем добавления объяснения, которое будет сопровождаться предоставленным кодом. –

Смежные вопросы