2017-12-27 1 views
0

내 Google 캘린더에 일정을 삽입하려고하는데 지금까지 작동하지 않습니다.Google 캘린더에 일정을 삽입하려면 CALENDAR_ID을 가져 오십시오.

내 메소드에서 올바른 CALENDAR_ID를 가져 오는 간단한 방법이 있습니까?

private void syncwithgooglecalendar2() { 
    Account[] accounts = AccountManager.get(CalendarSyncActivity.this).getAccountsByType(
      "com.google"); 
    String accountName = ""; 
    for (Account acc : accounts) { 
     Log.d(">>>>>>>", "Name: " + acc.name + "-----Type: " + acc.type); 
     accountName = acc.name; 
    } 
    long calID = getCalendarId(CalendarSyncActivity.this, accountName); 
    .... 
} 

private long getCalendarId(Activity activity, String MY_ACCOUNT_NAME) { 
    String[] projection = new String[]{BaseColumns._ID}; 
    String selection = CalendarContract.Calendars.ACCOUNT_NAME + " = ?"; 
    String[] selArgs = new String[]{MY_ACCOUNT_NAME}; 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) { 
     return TODO; 
    } 
    Cursor cursor = activity.getContentResolver().query(
      CalendarContract.Calendars.CONTENT_URI, projection, selection, selArgs, null); 
    if (cursor.moveToFirst()) { 
     return cursor.getLong(0); 
    } 
    return -1; 
} 

그리고 로그가 저를주는 다음과 같은 정보를 정기적으로 :

D/>>>>>>>: Name: [email protected]: com.google 
    D/>>>>>>>: Name: [email protected]: com.google 
    D/CalId:: 4 

나는 다른 calid를 예상,하지만 확실하지 않다 ... 는 연결 두 개 이상의 계정이있는 문제가 있습니까 달력? "기본"에 대해 읽었지 만 기존 코드에이 코드를 설치하는 방법을 모르겠습니다. 아니면 해결할 다른 방법이 있습니까?

+0

시도한 코드 게시 – shravani

+0

위의 누락 된 코드를 추가했습니다! – Timitrov

답변

0

귀하의 calendarID는 일반적으로 귀하의 이메일 주소입니다. 그러나 여러 개의 캘린더가있는 경우 calendars.list 메소드를 사용하여 캘린더를 가져올 수 있습니다.

관련 문제