1

當我查詢Events.CONTENT_URI的內容解析器時,它正確地顯示我未來的事件,並且他們有一個警報。但是,當我查詢Reminders.CONTENT_URI時,它只顯示已發生的提醒。我想查找未來的事件是否有提醒,並允許用戶在需要時將其刪除。我該怎麼做呢?我在哪裏可以找到這些信息?如何查詢日曆事件的提醒?未來事件顯示,但他們的提醒不

只有已經發生的提醒在這裏

//Get all reminders 
Cursor cursor = getContentResolver().query(
    Reminders.CONTENT_URI, null, null, null, null 
); 

//None of my future events show here even though they have reminders 
while (cursor.moveToNext()) 
{   
     Log.d(TAG, 
       "Id: " + cursor.getInt(cursor.getColumnIndex(Reminders._ID)) + 
       ", Minutes: " + cursor.getInt(cursor.getColumnIndex(Reminders.MINUTES)) + 
       ", Method: " + cursor.getInt(cursor.getColumnIndex(Reminders.METHOD)) 
     ); 
} 

顯示出來這說明將來的所有活動(所有這些都提醒,但他們不提醒顯示

//Get all events 
Cursor cursor = getContentResolver().query(
    Events.CONTENT_URI, null, null, null, null 
); 

while (cursor.moveToNext()) 
{   
    //This correctly shows the future events each have an alarm (hasAlarm = 1) 
    Log.d(TAG, 
      cursor.getString(cursor.getColumnIndex(Events.TITLE)) + "," 
      cursor.getInt(cursor.getColumnIndex(Events.HAS_ALARM)) 
    ); 
} 

我如何找到(並改變)未來事件提醒?

編輯:CalendarAlerts也不顯示未來事件的警報!未來事件沒有出現在CalendarAlerts.CONTENT_URI

回答

2

您需要通過事件ID爲您要提醒 args = new String[] { Long.toString(mEventId) };未來事件的查詢參數,也需要使用where子句private static final String REMINDERS_WHERE = Reminders.EVENT_ID + "=?";

+0

謝謝!因此,告訴它你想要的特定事件必須超越緩存sqlite數據庫並查詢提供者,對嗎? – 2013-02-26 07:27:30

+0

是的,如果你想讓代碼看看日曆代碼http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.1.1_r1/com/android/日曆/ EventInfoFragment.java。在這個類中查找'TOKEN_QUERY_REMINDERS' – 2013-02-26 08:00:17