首页 > 解决方案 > CalendarContract.Events.EVENT_TIMEZONE 在三星设备中不起作用

问题描述

我正在尝试从我的应用程序将一些具有一些预定义时区的事件插入到 android 本机日历中。不知何故,它不适用于三星设备。它在 Pixel 设备中运行良好。下面是相同的代码片段。

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.putExtra(CalendarContract.Events.EVENT_TIMEZONE, "America/Los_Angeles");
intent.setData(CalendarContract.Events.CONTENT_URI);
intent.putExtra(CalendarContract.Events.TITLE, "test");
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, getDateTimeyyyymmddHHmm());
intent.putExtra(CalendarContract.Events.ALL_DAY, false);
intent.putExtra(CalendarContract.Events.DURATION, "PT1H");
startActivityForResult(intent, 1);

 public static Long getDateTimeyyyymmddHHmm() {
    TimeZone timeZone = TimeZone.getTimeZone("America/Los_Angeles");

    DateFormat dateFormat2 = new SimpleDateFormat("yyyyMMdd, HHmm", Locale.US);
    dateFormat2.setTimeZone(timeZone);
    Date d4 = null;
    try {
        d4 = dateFormat2.parse(new StringBuilder("20200216").append(", ").append("1045").toString());
        return d4.getTime();
    } catch (ParseException e) {
        return 0L;
    }
}

尝试了很多方法,还是不行。解决设备特定问题的任何帮助都会有所帮助。

标签: androidgoogle-calendar-apiandroid-calendar

解决方案


EVENT_TIMEZONE 存在于 CalendarContract.EventsColumns 中。

你可以在这里找到:https ://developer.android.com/reference/android/provider/CalendarContract.EventsColumns.html#EVENT_TIMEZONE


推荐阅读