0

カスタム 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)

私の実際のコードはもっと複雑です。現地時間ではなく UTC 時間で保存される終日のイベントの開始時間を調整できるように、カスタムの where 句が必要です。調整を行わないと、終日のイベントの比較は where 句と並べ替えで失敗します。

インスタンスで使用できる別の URI はありますか?

4

0 に答える 0