Android API 14 より前に作成された古いアプリを使用して、すべての Google カレンダーに問題なくアクセスしていました。数か月前に ICS にアップグレードし、API を使用するための変更を組み込みましたが、すべて正常に動作しました。しかし、最近の ROM フラッシュにより、再び壊れてしまいました。
問題は、アプリケーションがデフォルトの Google カレンダー以外のカレンダーを表示できないことです。以前は、カレンダー コンテンツ リゾルバーを呼び出すと、休日カレンダーを含むすべてのカレンダーが返されていました。
API ドキュメントには、ここで何をする必要があるかのヒントを与えるものは何も見つかりません。
public static List<dateEvent> readCalendar(Context context, String idString ) {
ContentResolver contentResolver = context.getContentResolver();
final Uri calendar_URI = Calendars.CONTENT_URI;
final Uri dates_URI = Instances.CONTENT_URI;
String selection = "((" + Calendars.ACCOUNT_NAME + " = ?) AND ("
+ Calendars.ACCOUNT_TYPE + " = ?) AND ("
+ Calendars.OWNER_ACCOUNT + " = ?))";
String[] selectionArgs = new String[] {
"myaddress@gmail.com", "com.google", "myaddress@gmail.com"};
cursor = contentResolver.query(calendar_URI,
(new String[] { Calendars._ID,
Calendars.CALENDAR_DISPLAY_NAME,
Calendars.VISIBLE } ),
selection, selectionArgs, null );
List<dateEvent> dateList = new LinkedList<dateEvent>();
while (cursor.moveToNext()) {
final String _id = cursor.getString(0);
final String displayName = cursor.getString(1);
System.out.println("Id: " + _id + " Display Name: " + displayName);
}
}