2012-11-09 61 views
0

我有一個奇怪的問題,我不知道如何解決這個問題。我測試了很多東西,但不知道問題是什麼。當我試圖編輯事件時Google日曆崩潰了

好的我已經創建了簡單的程序來插入事件到谷歌日曆設備,這將成功插入到谷歌日曆。

當我試圖從谷歌日曆編輯或點擊編輯菜單谷歌日曆將崩潰。我在許多設備上測試過,所有設備日曆的問題都是一樣的。

這裏是我的代碼

ContentResolver cr = getContentResolver(); 
     ContentValues values = new ContentValues(); 
     Uri EVENTS_URI = null; 

     EVENTS_URI = Uri.parse("content://com.android.calendar/events"); 

     long time = System.currentTimeMillis(); 

     values.put("calendar_id", 1); 
     values.put("title", "event.eventName"); 
     values.put("allDay", 0); 
     values.put("dtstart", time); 
     values.put("dtend", time + 1000 * 60 * 60 * 2); 
     values.put("description", "description"); 
     values.put("visibility", 0); 
     values.put("transparency", 0); 
     values.put("hasAttendeeData", 0); 
     values.put("hasAlarm", 1); 
     values.put("eventLocation", "location"); 
     cr.insert(EVENTS_URI, values); 

我無法檢測或原因,爲什麼這種事發生在我的插入事件僅

+2

PRATIK,logcat的輸出總是有幫助的idetify問題。 –

+0

對不起paresh我無法獲取Google日曆日誌輸出我在Google日曆中收到錯誤,而不是在我的應用程序中 – Pratik

+0

您正在測試哪些SDK? –

回答

0

經過分析插入事件和搜索logcat日曆我發現我的日曆是強制關閉,當我試圖編輯插入的事件從我的應用程序。

的原因是我沒有我的情況下設置時區字段值和日曆它會得到這就是爲什麼它去強制關閉編輯時間爲空指針

我也有搜索的Android logcat的應用我發現這個

https://play.google.com/store/apps/details?id=org.jtb.alogcat&feature=search_result

檢測從登錄我知道時區充滿null值和日曆應用程序去墜毀所有的日誌對我很有用。

所以我只是在插入時添加這個填充值,它的工作完美。

低於ICS ICS

values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID()); 

values.put("eventTimezone", TimeZone.getDefault().getID()); 
0

如果你會考慮與意圖這樣做,你可以不喜歡它這個:

Intent intent = new Intent(Intent.ACTION_EDIT); 
int sdk = android.os.Build.VERSION.SDK_INT; 
if(sdk < ICE_CREAM_BUILD_ID) { 
    // all SDK below ice cream sandwich 
    intent.setType("vnd.android.cursor.item/event"); 
    intent.putExtra("beginTime", startTime); 
    intent.putExtra("endTime", endTime); 
    intent.putExtra("title", title); 
    intent.putExtra("description", description); 
    intent.putExtra("eventLocation", location); 
    intent.putExtra("allDay", isAllDay); 

// intent.putExtra("rrule", "FREQ=YEARLY"); 
} else { 
    // ice cream sandwich and above 
    intent.setType("vnd.android.cursor.item/event"); 
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startTime); 
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime); 
    intent.putExtra(Events.TITLE, title); 
    intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE); 
    intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY , isAllDay); 
    intent.putExtra(Events.DESCRIPTION, description); 
    intent.putExtra(Events.EVENT_LOCATION, location); 

// intent.putExtra(Events.RRULE, "FREQ=DAILY;COUNT=10") 
} 
try { 
    context.startActivity(intent); 
    return true; 
} catch(Exception e) { 
    return false; 
} 
相關問題