2013-01-16 77 views
0

我得到错误,而运行这段代码... 这里是我的代码:值插入谷歌日历

alendar cal = Calendar.getInstance();  
    Uri EVENTS_URI = Uri.parse(getCalendarUriBase(this) + "events"); 
    ContentResolver cr = getContentResolver(); 

    // event insert 
    ContentValues values = new ContentValues(); 
    values.put("calendar_id", 1); 
    values.put("title", edSubject.getText().toString()); 
    values.put("allDay", 0); 
    values.put("dtstart", dateStart.toString()); // event starts at 11 minutes from now 
    values.put("dtend", cal.getTimeInMillis()+60*60*1000); // ends 60 minutes from now 
    values.put("description", "Reminder description"); 
    values.put("visibility", 0); 
    values.put("hasAlarm", 1); 
    Uri event = cr.insert(EVENTS_URI, values); 

    // reminder insert 
    /*Uri REMINDERS_URI = Uri.parse(getCalendarUriBase(this) + "reminders"); 
    values = new ContentValues(); 
    values.put("event_id", Long.parseLong(event.getLastPathSegment())); 
    values.put("method", 1); 
    values.put("minutes", 10); 
    cr.insert(REMINDERS_URI, values);*/ 

private String getCalendarUriBase(ActivityAppointment act) { 

     String calendarUriBase = null; 
     Uri calendars = Uri.parse("content://calendar/calendars"); 
     Cursor managedCursor = null; 
     try { 
      managedCursor = act.managedQuery(calendars, null, null, null, null); 
     } catch (Exception e) { 
     } 
     if (managedCursor != null) { 
      calendarUriBase = "content://calendar/"; 
     } else { 
      calendars = Uri.parse("content://com.android.calendar/calendars"); 
      try { 
       managedCursor = act.managedQuery(calendars, null, null, null, null); 
      } catch (Exception e) { 
      } 
      if (managedCursor != null) { 
       calendarUriBase = "content://com.android.calendar/"; 
      } 
     } 
     return calendarUriBase; 
    } 

的logcat:

01-16 15:34:27.620: E/AndroidRuntime(3114): FATAL EXCEPTION: main 
01-16 15:34:27.620: E/AndroidRuntime(3114): java.lang.NullPointerException 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at android.os.Parcel.readException(Parcel.java:1327) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at android.content.ContentProviderProxy.insert(ContentProviderNative.java:447) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at android.content.ContentResolver.insert(ContentResolver.java:721) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at com.sree.weekdayview.calendar.activities.ActivityAppointment.SaveData(ActivityAppointment.java:348) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at com.sree.weekdayview.calendar.activities.ActivityAppointment$3.onClick(ActivityAppointment.java:117) 
01-16 15:34:27.620: E/AndroidRuntime(3114):  at android.view.View.performClick(View.java:3122) 
+0

您可以修复此错误?这与我一样,但只有Android 2.3.4姜饼..:/ –

回答

0

而不是使用managedQuery尝试内容解析器查询方法。它的所有与managedQuery相同,只是将其替换为查询,如下所示。

ContentResolver cr = getContentResolver(); 
    Cursor cursor = cr.query(intent.getData(), null, null, null, null); 
+0

intent.getdata()-intent ??? – Prasad

+0

act.managedQuery(calendar,null,null,null,null);用ContentResolver替换cr = getContentResolver();游标cursor = cr.query(calendar,null,null,null,null); – NaserShaikh

+0

ThanQ ...尝试但同样的错误..我在3.2中运行 – Prasad