对CalendarContract.Instances使用custom where子句

时间:2016-03-16 17:07:52

标签: android calendarcontract

是否可以使用自定义where子句查询CalendarContract.Instances?

使用此URI的常规语法是:

Uri.Builder builder = CalendarContract.Instances.CONTENT_URI.buildUpon();
ContentUris.appendId (builder, startDate);
ContentUris.appendId (builder, endDate);

但我想通过提供我自己的where子句并省略URI的开始和停止时间来操纵开始日期比较。为了一个简单的例子,像这样("投影"在其他地方定义):

final Uri uri = CalendarContract.Instances.CONTENT_URI;
String selection = Instances.BEGIN  + " >= " + startTime + " and " +
                   Instances.END + " <= " + endTime;
Cursor cursor = context.getContentResolver().query (
  uri,
  projection, 
  selection,
  null,
  null);

这导致了DatabaseUtils异常:

03-16 09:57:06.041 W/System.err: java.lang.IllegalArgumentException: Unknown URL content://com.android.calendar/instances/when
03-16 09:57:06.041 W/System.err:     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)

我的真实代码更复杂。我需要自定义where子句,以便我可以调整整天事件的开始时间,这些事件以UTC时间而不是本地时间存储。如果没有调整,所有日期事件的比较都会在where子句和排序中失败。

我可以使用不同的URI与Instances一起做我想要的吗?

0 个答案:

没有答案