2014-09-16 2 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

Android 5.1.1로 Google Nexus 7 Tablet에서 똑같은 기능을 사용해 보았습니다. 결과로 isPrimary의 별칭이없는 커서의 열이 있습니다. 그 이름 대신 열 인덱스 인 경우 -1 isPrimary을 위해 지금 확인하고 만약 그렇다면 나는 컬럼에 대해 위의 이름을 사용

COALESCE (isPrimary, ownerAccount = 계정 이름)입니다.

나는 아직도 이런 일이 일어나는 이유를 모르지만, 일부 장치의 구현에서 누락 된 별칭으로 보입니다.