2017-10-11 18 views
-1

私はモバイルカレンダーと同期された特定のメールIDからイベントを取得する必要があります。特定のイベントからのカレンダーイベントID

特定のメールIDとは関係のないすべてのイベントを取得できます。

特定のメールIDからイベントを取得する方法。どんな助けも私にとって大きな助けになるはずです。

public ArrayList<String> nameOfEvent = new ArrayList<String>(); 

    public ArrayList<String> startDates = new ArrayList<String>(); 

    public ArrayList<String> descriptions = new ArrayList<String>(); 

    public Multimap<String, String> multimap = ArrayListMultimap.create(); 



    public ArrayList<String> readCalendarEvent(Context context) { 
     Cursor cursor = context.getContentResolver() 
       .query(
         Uri.parse("content://com.android.calendar/events"), 
         new String[]{"calendar_id", "title", "description", 
           "dtstart", "dtend", "eventLocation"}, null, 
         null, null); 
     cursor.moveToFirst(); 
     // fetching calendars name 
     String CNames[] = new String[cursor.getCount()]; 

     // fetching calendars id 
     nameOfEvent.clear(); 
     startDates.clear(); 
     //endDates.clear(); 
     descriptions.clear(); 
     for (int i = 0; i < CNames.length; i++) { 
      String test = cursor.getString(0); 
      nameOfEvent.add(cursor.getString(1)); 
      startDates.add(getDate(Long.parseLong(cursor.getString(3)))); 
      // endDates.add(getDate(Long.parseLong(cursor.getString(4)))); 
      descriptions.add(cursor.getString(2)); 
      multimap.put(getDate(Long.parseLong(cursor.getString(3))), 
        getTime(Long.parseLong(cursor.getString(3)))); 
      CNames[i] = cursor.getString(1); 
      cursor.moveToNext(); 
     } 
     return nameOfEvent; 
    } 

    public String getDate(long milliSeconds) { 
     SimpleDateFormat formatter = new SimpleDateFormat(
       "dd/MM/yyyy"); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(milliSeconds); 
     return formatter.format(calendar.getTime()); 
    } 

    public String getTime(long milliSeconds) { 
     SimpleDateFormat formatter = new SimpleDateFormat(
       "hh:mm:ss"); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(milliSeconds); 
     return formatter.format(calendar.getTime()); 
    } 

答えて

0

特定のgmailでは、calendersとそのイベントが複数ある可能性があります。 1つはprimary calenderで、その他はsecondary calendersです。ユーザー(gmail)のすべてのカレンダーを登録し、GoogleカレンダーAPIを使用して各カレンダーのすべての予定を取得することができます。ここで私が過去に行ったいくつかの一般的な操作は、いくつかの点であなたを助けるかもしれません。

link to github

は、それはあなたを助けることを願っています。

+0

それは適切な解決策を提供しません –

+0

しかし、あなたがそれを開始するのを助けることができます –

関連する問題