2014-09-16 1 views
3

я получить все календари с:Проверьте календарь первичен

Cursor cursor = getContentResolver().query(Uri.parse("content://com.android.calendar/calendars"), 
      null, null, null, null); 

Курсор содержит все календари, которые я использую. В соответствии с documentation курсор должен содержать столбец, указывающий, является ли календарь основным календарем пользователя. же

cursor.getColumnIndex("isPrimary"); 

возвращается -1.

Любые идеи, что я делаю неправильно?

ответ

1

Я пробовал это на некоторых телефонах, и кажется, что на некоторых телефонах нет IS_PRIMARY столбца. Поэтому вы не должны полагаться на это поле. Телефон, с которым он не работал, был HTC Sensation XE. На Nexus-телефонах (Galaxy Nexus и Nexus 5) он присутствовал.

+0

Спасибо, но я уже пробовал это, и столбец IS_PRIMARY все еще не присутствует в курсоре. – FWeigl

+0

Изменен мой ответ – Gober

1

Я просто попробовал то же самое на планшете Google Nexus 7 с Android 5.1.1. Результат был, есть столбец в курсоре без псевдонима для isPrimary. Его название вместо

COALESCE (IsPrimary, ownerAccount = account_name)

Я теперь проверить, если индекс столбца -1 для IsPrimary и если так я использую выше имя для столбца.

Я до сих пор не знаю, почему это происходит, но, похоже, это недостающий псевдоним в реализации на некоторых устройствах.

Смежные вопросы