我使用适用于 Android 的日历提供程序创建了一个日历。我一切正常,我什至让提醒工作:
public static ContentValues getReminderContentValues(long eventId) {
ContentValues cv = new ContentValues();
cv.put(CalendarContract.Reminders.EVENT_ID, eventId);
cv.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
cv.put(CalendarContract.Reminders.MINUTES, 15);
return cv;
}
使用上面的代码,我可以看到默认日历应用程序、Google 日历以及我的应用程序中的事件。
我还会在预定开始前 15 分钟收到通知。现在我想自定义通知,当我点击通知时,它会转到我的应用程序,而不是默认的日历应用程序或 Google 日历。
我试图在清单中使用ACTION_EVENT_REMINDER注册广播,例如:
<receiver android:name=".receivers.ReminderReceiver">
<intent-filter>
<data android:scheme="content" />
<action android:name="android.intent.action.EVENT_REMINDER" />
</intent-filter>
</receiver>
有了这个,我可以在onReceive
广播接收器的方法中获取代码,但是如果我也在那里写一个通知,那么我将显示 2 个通知。一个可以正常工作,而另一个可以在单击时将我带到默认应用程序。
关于如何获得提醒通知以打开我的应用程序或阻止默认提醒通知并完全创建一个新通知的任何解决方案?
另一种解决方案是在事件的确切时间的帮助下安排警报AlarmManager
,但由于会有很多这样的意图,它们基本上会相互覆盖!有什么解决办法吗?