1

插入到Google日曆後無法讀取記錄。插入Google日曆後無法讀取記錄

有些時間字母,記錄被讀取。

爲什麼?

如果從ActivityContext,那麼一切工作正常。如果ContextAndroidTestCase或採取Application,它不起作用。

注意:帶有id = calendarId的日曆爲空。

public static void test(final Context context, final int calendarId) { 
    // insert 
    java.util.Calendar calendar = java.util.Calendar.getInstance(); 

    ContentValues contentValues = new ContentValues(); 

    contentValues.put("calendar_id", calendarId); 
    contentValues.put("dtstart", calendar.getTime().getTime()); 
    contentValues.put("dtend", calendar.getTime().getTime() + 1L*60*60*1000); 
    contentValues.put("title", "test_title"); 

    Uri uri = Uri.parse("content://com.android.calendar/events"); 
    context.getContentResolver.insert(uri, contentValues); 

    // read 
    Uri.Builder builder = Uri.parse("content://com.android.calendar/instances/when").buildUpon(); 
    ContentUris.appendId(builder, Long.MIN_VALUE); 
    ContentUris.appendId(builder, Long.MAX_VALUE); 

    Cursor cursor = context.getContentResolver.query(
     builder.build(), 
     new String[] { "event_id", "title" }, 
     "Calendars._id=" + calendarId, 
     null, 
     null); 
    try { 
     if (!cursor.moveToNext()) { 
      // fail 
      throw new IllegalStateException(); 
     } 
    } finally { 
     cursor.close(); 
    } 
} 

回答

0

我的錯。在代碼:

Uri.Builder builder = Uri.parse("content://com.android.calendar/instances/when").buildUpon(); 
ContentUris.appendId(builder, Long.MIN_VALUE); 
ContentUris.appendId(builder, Long.MAX_VALUE); 

無法設定開始日期Long.MIN_VALUE值。