備忘録を忘れそうになるくらい、ひっさびさの更新ですね。。。
的なことは聞いてたので、今回はちょっと差分を見てみました。
googleカレンダーのカレンダー一覧を取得するコード
googleカレンダーのカレンダー一覧を取得するコード
// カレンダーのリストの作成(android2.3)
private void CalendarList() {
Uri uri = Uri.parse(
"content://com.android.calendar/calendars");
String[] projection = new String[]{"_id","displayName"};
Cursor cursor = getContentResolver().query(uri,
projection, null, null, null);
if (cursor != null) {
try {
while (cursor.moveToNext()) {
// カレンダー名とIDを取得
String id = cursor.getString(cursor
.getColumnIndex("_id"));
String displayName = cursor.getString(cursor
.getColumnIndex("displayName"));
Log.d("CalendarList", id + " " + displayName);
}
} finally {
cursor.close();
}
}
}
以前はこんな感じのコードだったんですが、
ICSでは下の書き方でいけます。
ICSでは下の書き方でいけます。
// カレンダーのリストの作成(android4.0)
private void CalendarList() {
Uri uri = Calendars.CONTENT_URI;
String[] projection = new String[] { Calendars._ID,
Calendars.CALENDAR_DISPLAY_NAME };
String selection = "((" + Calendars.ACCOUNT_NAME + " = ?)
AND (" + Calendars.ACCOUNT_TYPE + " = ?))";
// google calendar から取得
String[] selectionArgs = new String[] {
"my_name@gmail.com" , "com.google" };
Cursor cursor = getContentResolver().query(
uri, projection, selection, selectionArgs, null);
if (cursor != null) {
try {
while (cursor.moveToNext()) {
// カレンダー名とIDを取得
String id = cursor.getString(cursor
.getColumnIndex(Calendars._ID));
String displayName = cursor.getString(cursor
.getColumnIndex(Calendars.CALENDAR_DISPLAY_NAME));
Log.d("CalendarList", id + " " + displayName);
}
} finally {
cursor.close();
}
}
}
差分としてはURIの指定方法が変わったのと、
以前はgoogle calendarのAPIにあったフィールド(IDとか)が
直接指定できるようになってるのですごい楽になってる。
ICS以前からの修正はそこまで大きくないと思ってるので、
使ってるアプリが早くVerUpされるのを期待するる。