2017-12-27 4 views
0

Ich versuche, ein Ereignis in meinem Google Kalender einzufügen, aber es funktioniert nicht so weit.Erhalten Sie CALENDAR_ID, um Ereignis in Google Kalender einzufügen

Gibt es einen einfachen Weg, um die richtige CALENDAR_ID innerhalb meiner Methode zu bekommen?

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; 
} 

und das Protokoll gibt mir die folgenden Infos:

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

ich eine anderen calid erwartet, aber ich bin mir nicht sicher ... Gibt es ein Problem, wenn es mehr als ein Konto ist verbunden mit der Kalender? Ich habe über "primär" gelesen, aber ich weiß nicht, wie ich das in meinem bestehenden Code installieren soll. Oder gibt es einen anderen Weg, es zu lösen?

+0

Geben Sie den Code ein, den Sie ausprobiert haben – shravani

+0

Ich habe den obigen fehlenden Code hinzugefügt! – Timitrov

Antwort

0

Ihre Kalender-ID ist normalerweise Ihre E-Mail-Adresse. Wenn Sie jedoch mehrere Kalender haben, können Sie die Methode calendars.list verwenden, um sie zu erhalten.

Verwandte Themen