首页 > 解决方案 > 保存后日历的意图不会添加到日历中

问题描述

这是我用来将所有详细信息插入谷歌日历应用程序弹出窗口的代码。一切正常(正确的日期、标题、描述),除非您在日历弹出窗口中单击“保存”,它会显示:event saved successfully但该事件实际上并未保存在日历中。

        addToCalendar.setOnClickListener(v -> {

            Calendar beginTime = Calendar.getInstance();
            beginTime.set(datumvonCalendar.getJahr(),datumvonCalendar.getMonat(),datumvonCalendar.getTag(),zeitvonCalendar.getStunde(),zeitvonCalendar.getMinute(),0);

            Calendar endTime = Calendar.getInstance();
            endTime.set(datumbisCalendar.getJahr(),datumbisCalendar.getMonat(),datumbisCalendar.getTag(),zeitbisCalendar.getStunde(),zeitbisCalendar.getMinute(),0);

            Long millisEnd = endTime.getTimeInMillis();
            Long millisStart = beginTime.getTimeInMillis();

            Intent intent = new Intent(Intent.ACTION_INSERT);
            intent.setData(CalendarContract.Events.CONTENT_URI);
            intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,millisStart);
            intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,millisEnd);
            intent.putExtra(CalendarContract.Events.EVENT_TIMEZONE,"Europe/Berlin");
            intent.putExtra(CalendarContract.Events.TITLE,headerTxt.getText().toString());
            intent.putExtra(CalendarContract.Events.DESCRIPTION,beschreibungTxt.getText().toString());
            fragment.startActivity(intent);
        });

标签: javaandroid-studioandroid-intentcalendargoogle-calendar-api

解决方案


建议:

看来您的代码确实没有任何问题,也许您可​​以尝试以下方法:

    Calendar beginTime = Calendar.getInstance();
    beginTime.set(datumvonCalendar.getJahr(),datumvonCalendar.getMonat(),datumvonCalendar.getTag(),zeitvonCalendar.getStunde(),zeitvonCalendar.getMinute(),0);

    Calendar endTime = Calendar.getInstance();
    endTime.set(datumbisCalendar.getJahr(),datumbisCalendar.getMonat(),datumbisCalendar.getTag(),zeitbisCalendar.getStunde(),zeitbisCalendar.getMinute(),0);

    Long millisEnd = endTime.getTimeInMillis();
    Long millisStart = beginTime.getTimeInMillis();

    Intent intent = new Intent(Intent.ACTION_INSERT, CalendarContract.Events.CONTENT_URI);
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,millisStart);
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,millisEnd);
    intent.putExtra(CalendarContract.Events.EVENT_TIMEZONE,"Europe/Berlin");
    intent.putExtra(CalendarContract.Events.TITLE,headerTxt.getText().toString());
    intent.putExtra(CalendarContract.Events.DESCRIPTION,beschreibungTxt.getText().toString());
    fragment.startActivity(intent);

此外,您可能需要确保您的Begin时间End设置正确。

参考:


推荐阅读