Android:如何从Observer / Receiver中获取事件和日历ID,以便删除CalendarContract.EVENT

时间:2013-02-12 00:57:57

标签: android events broadcastreceiver android-calendar contentobserver

我目前正在开发一个应用程序,可以将日历事件添加到用户选择的日历中。用户可以使用我的应用程序或其他日历应用程序来编辑活动。我现在正在尝试编写一个在后台工作的接收器或观察器,并监听事件或实例的更改。我基本上希望我的应用程序知道何时删除事件或事件实例,以便我可以清理应用程序数据库中的某些数据,尤其是当从其他CALENDAR APP中删除事件或实例时。我以为我可以使用intent过滤器在清单文件中注册一个观察者。我发现以下示例使用广播接收器,它似乎在大多数情况下工作,但我想知道如何获取calendarId,eventId甚至可能删除事件的instanceId。有任何想法吗?

<receiver android:name=".calendar.CalendarChangeReceiver">
    <intent-filter>
      <action android:name="android.intent.action.PROVIDER_CHANGED"/>
      <data android:scheme="content"/>
      <data android:host="com.android.calendar"/>
    </intent-filter>
</receiver>

1 个答案:

答案 0 :(得分:0)

不幸的是,对于内容观察者,您无法获得有关更改内容的任何详细信息。 您获得的唯一信息是更改的内容Uri(如果可用),这仅来自API 16: onChange(boolean, android.net.Uri)