カレンダーの洗い出し

カレンダーから1件だけ予定を抜き出してくるということをやろうとしてみたら、意外と面倒だったわけですが…。
getContentResolver().query()の書式さえわかれば、あとはなんとかなりました。

↓コードが見づらくてすいません。

Uri eventUri = Uri.parse(“content://calendar/events”);
Cursor eventCursor = getContentResolver().query(eventUri,new String[]{“dtstart”,”title”},”dtstart > ” + System.currentTimeMillis(),null, “dtstart asc”);

直近のイベントを降順で取り出す。
「SELECT dtstart,title FROM (データベース名) WHERE dtstart > (現在のミリ秒) ORDER BY dstart asc」です。

ほんとは、LIMIT 1とかつけないとダメでしょうけど。

この前にどんだけカレンダーがあるかを探してくる処理もあるんですが、それはmanagedQueryを使えばいいようです。

しかし…これ、ふつーにアプリで使っていいんだろうか。
カレンダーアプリはいくつか出てるから気にしなくてもいいのかな。