備忘録を忘れそうになるくらい、ひっさびさの更新ですね。。。
的なことは聞いてたので、今回はちょっと差分を見てみました。
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されるのを期待するる。