2017-02-24 21 views
0

私はカレンダーに少し新しくなりました。誰かが私たちのアプリケーションでlistview/recyclerviewにそれを表示するデフォルトのカレンダー(Googleカレンダーまたは他の唯一のデフォルトのカレンダー)からイベント(例えば、誕生日/会議リマインダ)を取得する方法を教えてもらえますか?デバイスカレンダー(デフォルトカレンダー)イベントを取得し、アプリケーションに表示する方法は?

答えて

0

このSO questionは、カレンダーの読み書きを表します。カレンダー(複数可)を読み取る必要がある重要な情報である:

Uri uri = CalendarContract.Calendars.CONTENT_URI; 
String[] projection = new String[] { 
    CalendarContract.Calendars._ID, 
    CalendarContract.Calendars.ACCOUNT_NAME, 
    CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, 
    CalendarContract.Calendars.NAME, 
    CalendarContract.Calendars.CALENDAR_COLOR 
}; 

Cursor calendarCursor = managedQuery(uri, projection, null, null, null); 

その後、カーソルからデータを抽出する必要があります。

ArrayList<String> ids = new ArrayList<String>(); 
try { 
     if (cursor.getCount() > 0) { 
      while (cursor.moveToNext()) { 
       String id= cursor.getString(0); 
       calendars.add(id); 
      } 
     } 
    } catch (AssertionError ex) { /*TODO: log exception and bail*/ } 

その後、あなたはIDを持っているし、それぞれを照会する必要がありますイベントのために。これはSO questionの受け入れられた答えに記述されています。また、このgithubリポジトリには解決策があります。これらのアプローチのほとんどは、Android 4.2以上のバージョンでのみ動作します。

関連する問題