2013-11-16 8 views
11

Ich habe verstanden, ich muss Content Provider verwenden, um alle Änderungen zu erhalten, aber ich erkannte auch, API14 gibt es eine fertige Content Provider für den Kalender, den ich verwenden kann, statt " "Mein eigenes maßgeschneidertes".
Gibt es irgendwo, wo ich ein Beispiel dafür sehen kann?
Kann jemand bitte den Kern dieses Zuhörers posten?Hören Sie Android Kalenderänderungen. (Sync/Delete/Einfügen etc ..)

Dank

Antwort

22

Zuerst müssen Sie diese Art von Empfänger zu dem Manifest hinzuzufügen:

<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> 

Dann eine einfache Klasse erstellen, die Rundfunkempfänger erweitert:

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(); 
    } 
} 
+0

Thank you! Funktioniert super ! – SagiLow

+0

Das ist sonst unmöglich aus der Dokumentation zu bekommen, also vielen Dank für die Einsicht. –

+0

Kann ich ein vollständiges Beispiel bekommen? – Nikita

Verwandte Themen