BroadcastReceiver for Android日历事件

Ali*_*liR 15 android broadcastreceiver android-calendar

我正在尝试编写一个BroadcastReceiver来监听插件,编辑,删除到本机安卓日历(ICS及以上版本)等事件.因此,每当其中一个事件发生时,应用程序应该至少能够知道这些事件发生了.

任何人都有一个想法,如何做到这一点或任何参考链接.

我编写了自己的broadcasterReceiver类,它从BroadcastReceiver扩展而来.无法弄清楚清单中的值,目前我有这个不起作用:

 <receiver
    android:name=".NativeEventChangeReceiver">
     <intent-filter>
        <action android:name="android.intent.action.EDIT"/>
        <action android:name="android.intent.action.INSERT"/>
        <action android:name="android.intent.action.DELETE"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="vnd.android.cursor.dir/event"/>
     </intent-filter>
  </receiver>
Run Code Online (Sandbox Code Playgroud)

干杯,

编辑1:有没有人知道数据标签的正确字符串?我认为这在intent-filter中也是必需的.

编辑2:有关使用ContentObserver的任何提示?

Ali*_*liR 26

经过大量阅读后终于找到了解决方案,这可能有助于其他人找到类似的解决方案.

在Manifest中,您需要编写这些行以捕获更改:

<receiver
   android:name=".NativeEventChangeReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PROVIDER_CHANGED"/>
            <data android:scheme="content"/>
            <data android:host="com.android.calendar"/>
        </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

干杯,

  • 一年多一点之后,这仍然是一个问题.广播意图没有关于日历提供商中更改内容的任何信息.请为此问题投票:https://code.google.com/p/android/issues/detail?id = 55675 (5认同)
  • 我相信没有与该意图捆绑在一起的数据,因此,没有办法找到答案.您必须扫描整个表格. (4认同)
  • 你能展示BroadCastReceiver用来提取事件数据的代码吗? (3认同)
  • 其实我找不到一个.你介意给我发个链接吗? (2认同)