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