2016-07-21 3 views
0

新しいスケジュールをプログラムで作成したいと思います。タイトル、 場所と説明をパラメータとして指定します。日付と時刻は修正値として計算されます。カレンダーにスケジュールを追加する方法#Android

public Uri addScheduleToCalender(String title,String place,String description) { 

    long calID = 3; 
    long startMillis = 0; 
    long endMillis = 0; 
    Calendar beginTime = Calendar.getInstance(); 
    beginTime.set(2016, 7, 22, 17, 30); 
    startMillis = beginTime.getTimeInMillis(); 
    Calendar endTime = Calendar.getInstance(); 
    endTime.set(2016, 7, 22, 18, 45); 
    endMillis = endTime.getTimeInMillis(); 

    ContentValues values = new ContentValues(); 

    values.put(CalendarContract.Events.EVENT_LOCATION, place); 
    values.put(CalendarContract.Events.DTSTART, startMillis); 
    values.put(CalendarContract.Events.DTEND, endMillis); 
    values.put(CalendarContract.Events.TITLE, title); 
    values.put(CalendarContract.Events.DESCRIPTION, description); 
    values.put(CalendarContract.Events.CALENDAR_ID, calID); 
    values.put(CalendarContract.Events.EVENT_TIMEZONE, "UTC/GMT +2:00"); 
    Uri uri; 
    if (Build.VERSION.SDK_INT >= 8) { 
     uri = Uri.parse("content://com.android.calendar/events"); 
    } else { 
     uri = Uri.parse("content://calendar/events"); 
    } 
    Uri l_uri = MainActivity.this.getContentResolver() 
      .insert(uri, values); 

    return l_uri; 

} 

でも動作しません。スケジュールデータは保存されません。

+0

あなたはカレンダーの権限を持っていますか? –

+0

@madhankumarはい、私は既にこのような許可を追加しました.. pes

+0

'ContentResolver cr = getContentResolver();'と 'Uri l_uri = cr.insert(uri、values);' –

答えて

0

あなたは、コードの下に使用するデフォルトのカレンダーでスケジュールタスクを挿入するための、

// You need to pass application context as ctx parameter 
ContentResolver cr = ctx.getContentResolver(); 

// Now add schedule as below 
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values); 
0

は、このコードを試してみてください。

public Uri addScheduleToCalender(String title,String place,String description) { 

    long calID = 3; 
    long startMillis = 0; 
    long endMillis = 0; 
    Calendar beginTime = Calendar.getInstance(); 
    beginTime.set(2016, 07, 22, 17, 30); 
    startMillis = beginTime.getTimeInMillis(); 
    Calendar endTime = Calendar.getInstance(); 
    endTime.set(2016, 07, 22, 18, 45); 
    endMillis = endTime.getTimeInMillis(); 

    ContentValues values = new ContentValues(); 
    ContentResolver cr = getContentResolver(); 

    values.put(CalendarContract.Events.EVENT_LOCATION, place); 
    values.put(CalendarContract.Events.DTSTART, startMillis); 
    values.put(CalendarContract.Events.DTEND, endMillis); 
    values.put(CalendarContract.Events.TITLE, title); 
    values.put(CalendarContract.Events.DESCRIPTION, description); 
    values.put(CalendarContract.Events.CALENDAR_ID, calID); 
    values.put(CalendarContract.Events.EVENT_TIMEZONE, "UTC/GMT +2:00"); 
    Uri uri; 
    if (Build.VERSION.SDK_INT >= 8) { 
     uri = Uri.parse("content://com.android.calendar/events"); 
    } else { 
     uri = Uri.parse("content://calendar/events"); 
    } 
    Uri l_uri = cr.insert(CalendarContract.Events.CONTENT_URI, values); 

    return l_uri; 

} 
関連する問題