Слушайте изменения календаря Android. (Синхронизация/удаление/вставка и т.д.)

Я понял, что мне нужно использовать Content Provider, чтобы получить все изменения, но я также понял, что при запуске API14 есть готовый Content Provider для календаря, который я могу использовать для прослушивания вместо "создания" моего собственный пользовательский.
Где-нибудь я могу увидеть пример этого?
Может кто-нибудь, пожалуйста, напишите ядро ​​этого слушателя?

Спасибо

Ответ 1

Сначала вам нужно добавить этот тип приемника в манифест:

    <receiver android:name="your.package.name.CatchChangesReceiver"
        android:priority="1000" >
        <intent-filter>
            <action android:name="android.intent.action.PROVIDER_CHANGED" />
            <data android:scheme="content" />
            <data android:host="com.android.calendar" />
        </intent-filter>
    </receiver>

Затем создайте простой класс, который расширяет широковещательный приемник:

public class CatchChangesReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
    // add processing here with some query to content provider
        // in my project I use this selection for getting events:
         final String SELECTION = CalendarContract.Events.CALENDAR_ID + "="
            + calendarId + " AND " + "("
            + CalendarContract.Events.DIRTY + "=" + 1 + " OR "
            + CalendarContract.Events.DELETED + "=" + 1 + ")" + " AND "
            + CalendarContract.Events.DTEND + " > "
            + Calendar.getInstance().getTimeInMillis();
    }
}