2012-10-31 73 views
4

我想在android中使用下面的代碼添加我自己的日曆。 我也在清單中提供了讀寫權限。安卓日曆創建錯誤

和我的錯誤是:「錯誤在創建日曆名稱不能爲空:空」雖然我提供的姓名......

任何一個請HEP我解決這個問題並提供鏈接到在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

是謝謝你......但是這適用於Android 4.0 only..beacuse Calendar.Calendars在4.0..then也被引入謝謝你的幫助..:) –

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; 
     } 
    }