본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Calendar Provider 기본 정보들.

by 돼지왕 왕돼지 2012. 5. 22.
반응형




http://developer.android.com/guide/topics/providers/calendar-provider.html 

- SyncAdapter 는 provider 의 data 를 server 의 data 와 sync 시키는데 쓰인다. 예를 들어 Google Calendar 와 Calendar App 의 data 동기화에 쓰인다.


- CalendarProvider 의 Calendars 와 Events 에는 sync adpater 가 쓰기 위한 column 들이 있고 이 녀석들은 함부로 건들면 안된다.


- CalendarProvider 를 쓰기 위해서는 다음과 같은 권한들이 필요하다.

 android.permission.READ_CALENDAR

 android.permission.WRITE_CALENDAR


- Calendar 정보를 보기 위해서는 ACCOUNT_TYPE 을 명시해준다. AccountManager 에 등록되어있는지 query 하는데 필요한 정보이다. ONWER_ACCOUNT 를 명시해주지 않으면, 해당 owner 가 아닌 모든 calendar 정보를 볼 수 있다.


- ACCOUNT_TYPE_LOCAL 은 device account 와 관련되지 않으며, sync 되지도 않는다.


- 중략.. ( CalendarProvider 를 직접 사용할 때 읽어보면 되겠다. )


- SyncAdapter 는 CALLER_IS_SYNCADAPTER column 을 true 로 설정해줘야 하고, ACCOUNT_NAME, ACCOUNT_TYPE 을 query parameter 로 URI 에 싣어서 전달해야 한다. SyncAdapter 는 일반 App 이 Access 하는 것보다 훨씬 많은 column 을 접근할 수 있다.


- SyncAdapter 는 다음과 같은 형태로 Uri 가 작성되야 한다.

static Uri asSyncAdapter(Uri uri, String account, String accountType) {

    return uri.buildUpon()

        .appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER,"true")

        .appendQueryParameter(Calendars.ACCOUNT_NAME, account)

        .appendQueryParameter(Calendars.ACCOUNT_TYPE, accountType).build();

 }

 



도움이 되셨다면 손가락 꾸욱~




반응형

댓글