Android上CalendarProvider事件的自定义通知

时间:2017-06-24 14:24:41

标签: android android-contentprovider calendarcontract

我使用适用于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的帮助下安排一个关于事件确切时间的警报,但由于会有很多这样的意图,它们基本上会互相覆盖!对此有何解决方案?

0 个答案:

没有答案