如何通过意图创建日历事件时获得确认?

时间:2016-10-31 16:54:45

标签: android android-intent mobile calendar

我是通过意图创建日历活动。这是我的代码:

        Intent intent = new Intent(Intent.ACTION_INSERT)
            .setData(CalendarContract.Events.CONTENT_URI)
            .putExtra(CalendarContract.Events.TITLE, "Calendar event")
            .putExtra(CalendarContract.Events.DESCRIPTION, " This is a calendar event " + activity().getCallHistoryItem().getCaller())
            .putExtra(CalendarContract.Events.EVENT_LOCATION, "Location")
            .putExtra(Intent.EXTRA_PHONE_NUMBER, activity().getCallHistoryItem().getCaller());
    startActivity(intent);
}

在按钮的onClick()上,此意图启动,日历应用程序按预期启动。我的问题是,有没有办法确认用户创建了这个事件?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用BroadcastReceiver通过使用以下intent过滤器创建BroadcastReceiver来接收默认Android日历中的更改事件:

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

请注意,此接收器不会传递任何信息 - 您需要在收到日历API后查询日历API以查找已更改的内容。如果您正在执行可能需要很长时间的操作,您可能需要考虑使用WakefulBroadcastReceiver IntentService来执行更长时间的运行(因为BroadcastReceivers必须在10秒内完成{ {3}})。