2017-12-27 8 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メソッドを使用して取得できます。

関連する問題