Android 未通知提醒/事件

Android 未通知提醒/事件,android,android-contentprovider,android-calendar,reminders,Android,Android Contentprovider,Android Calendar,Reminders,我想在androidcalendar中设置提醒和事件,通过使用下面的代码,我可以看到android日历中的事件,但该事件没有被通知或警报或其他任何东西。我使用timpicker指定时间。我的问题是提醒和事件没有被通知或警报。代码或警报中是否有问题还有别的吗 btnSetAlarm.setOnClickListener(new View.OnClickListener() { @Override public void onCl

我想在android
calendar
中设置提醒和事件,通过使用下面的代码,我可以看到android日历中的事件,但该事件没有被通知或警报或其他任何东西。我使用
timpicker
指定时间。我的问题是提醒和事件没有被通知或警报。代码或警报中是否有问题还有别的吗

   btnSetAlarm.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() {
                        @Override
                        public void onTimeSet(TimePicker timePicker, int hours, int minutes) {

                            setEvents(hours,minutes);

                        }
                    }, hour, minute, false);
                    timePickerDialog.show();
                }
            });

 private void setReminders(Long eventID) {

        Calendar calendar=Calendar.getInstance();
        ContentResolver cr = getActivity().getContentResolver();
        ContentValues reminders = new ContentValues();
        reminders.put(CalendarContract.Reminders.EVENT_ID, eventID);
        reminders.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALARM);
        reminders.put(CalendarContract.Reminders.MINUTES,5);
        Uri eventsUri = Uri.parse("content://com.android.calendar/reminders");
        // event is added
        cr.insert(eventsUri, reminders);
    }

    private void setEvents(int hours, int minutes) {

        Calendar calNow = Calendar.getInstance();
        Calendar calSet = (Calendar) calNow.clone();

        calSet.set(Calendar.HOUR_OF_DAY, hours);
        calSet.set(Calendar.MINUTE, minutes);
        calSet.set(Calendar.SECOND, 0);
        calSet.set(Calendar.MILLISECOND, 0);

        ContentResolver cr = getActivity().getContentResolver();
        ContentValues values = new ContentValues();
        values.put(CalendarContract.Events.DTSTART, calSet.getTimeInMillis());
        values.put(CalendarContract.Events.DTEND, calSet.getTimeInMillis() + 10000 );
        values.put(CalendarContract.Events.HAS_ALARM,1);
        values.put(CalendarContract.Events.TITLE, "My Title");
        values.put(CalendarContract.Events.DESCRIPTION, "Android Development");
        values.put(CalendarContract.Events.CALENDAR_ID, 1);
        values.put(CalendarContract.Events.EVENT_TIMEZONE, Calendar.getInstance().getTimeZone().getID());

        Uri eventsUri = Uri.parse("content://com.android.calendar/events");
        // event is added
        Uri uri=cr.insert(eventsUri, values);


        // get the Event ID That is the Last element in the Uri
        Long eventID = Long.parseLong(uri.getLastPathSegment());
        Log.e(TAG, "" + eventID);
        setReminders(eventID);

    }

真正的问题是设备Redmi Note 2没有为
日历
事件提供适当的
BroadcastListner
,需要从设置证券手动启用权限,需要将我们的应用程序设置为
自动启动
模式以列出广播,因此简言之,这是与设备相关的问题在其他工作正常的设备上验证了此代码

真正的问题在于设备Redmi Note 2没有为
日历
事件提供适当的
广播列表器
,需要从设置安全手动启用权限,并且需要将我们的应用程序设置为
自动启动
模式,以便列表器广播因此,简而言之,这是与设备相关的问题。我已在其他设备中验证了此代码,该设备工作正常。

来自文档:

服务器上设置的报警方法。方法\默认值、方法\警报、方法\电子邮件、方法\短信和方法\警报是可能的值;该设备将只处理METHOD_DEFAULT和METHOD_ALERT提醒(其他类型的提醒仅存储,以便我们在进行更改时将相同的提醒信息发送回服务器)


请尝试将文档中的
CalendarContract.Emlerments.METHOD\u ALARM
更改为
CalendarContract.Emlerments.METHOD\u ALERT

服务器上设置的报警方法。方法\默认值、方法\警报、方法\电子邮件、方法\短信和方法\警报是可能的值;该设备将只处理METHOD_DEFAULT和METHOD_ALERT提醒(其他类型的提醒仅存储,以便我们在进行更改时将相同的提醒信息发送回服务器)

尝试将
CalendarContract.Emlerments.METHOD\u ALARM
更改为
CalendarContract.Emlerments.METHOD\u ALERT