2012-10-31 2 views
4

다음 코드를 사용하여 안드로이드에 내 자신의 캘린더를 추가하려고합니다. 매니페스트에서도 읽기 쓰기 권한을 제공했습니다. android 캘린더 만들기 오류

내 오류는 다음과 같습니다 내가 이름을 제공하고 있지만 ...

중 하나가 그것을 해결하기 위해 나를 간염도 링크를 제공하십시오 "널 달력을 만드는 동안 오류가 이름을 비워 둘 수 없습니다" 안드로이드에서 캘린더를 만드는 작업 솔루션.

    final Uri calUri = Uri.parse("content://com.android.calendar/calendars"); 

        android.accounts.Account account; 
        ContentValues vals = new ContentValues(); 
        vals.put("_id", 1); 

        vals.put("_sync_account_type", "ACCOUNT_TYPE_LOCAL"); 
        vals.put("name","sachin"); 
        vals.put("displayName","my_Cal"); 
        vals.put("color", 14417920); 
        vals.put("access_level", 700); 
        vals.put("selected", 1); 

        vals.put("sync_events", 1); 
        vals.put("timezone", "GMT"); 
        vals.put("hidden", 0); 
        Uri result= getContentResolver().insert(calUri, vals); 


        System.out.println(result); 

답변

0

이 같은 시도해야합니다 :

vals.put(Calendar.Calendars._SYNC_ACCOUNT_TYPE, "ACCOUNT_TYPE_LOCAL"); 
vals.put(Calendar.Calendars.NAME,"sachin"); 
vals.put(Calendar.Calendars.DISPLAY_NAME,"my_Cal"); 
vals.put(Calendar.Calendars.COLOR, 14417920); 
vals.put(Calendar.Calendars.ACCESS_LEVEL, 700); 
vals.put(Calendar.Calendars.SELECTED, 1); 
vals.put(Calendar.Calendars.SYNC_EVENTS, 1); 
vals.put((Calendar.Calendars.TIMEZONE, "GMT"); 
vals.put(Calendar.Calendars.HIDDEN, 0); 
+1

예는 감사를 ...하지만이 또한 4.0..then에 도입 된 안드로이드 4.0 only..beacuse Calendar.Calendars에서 작동 당신의 도움을 주셔서 감사합니다..:) –

2
public String createCalendar(String AccountName, String CalendarName,String Color) 

{ 
     try { 

      Uri target = Uri.parse("content://com.android.calendar/calendars"); 
      target = target.buildUpon() 
        .appendQueryParameter("caller_is_syncadapter", "true") 
        .appendQueryParameter("account_name", AccountName) 
        .appendQueryParameter("account_type", "com.google").build(); 

      // String calUriString = "content://calendar/calendars"; 
      ContentValues values = new ContentValues(); 
      values.put("name", AccountName); 
      values.put("account_name", AccountName); 
      values.put("account_type", "com.google"); 
      values.put("calendar_displayName", CalendarName); 
      values.put("calendar_color", Color); 
      values.put("calendar_access_level", "700"); 

      Uri calendarUri = getContentResolver().insert(target, values); 
      Log.v("calendar Uri", calendarUri.toString()); 
      String newCalID = calendarUri.toString().substring(
        calendarUri.toString().lastIndexOf("/") + 1, 
        calendarUri.toString().indexOf("?")); 
      Log.v("calendar Id", newCalID); 
      return newCalID; 

     } catch (Exception e) { 
      System.out.println(e.toString()); 
      return null; 
     } 
    }