我正在尝试从我的应用程序向Android本机日历中插入一些具有预定义时区的事件。不知何故,它无法在Samsung设备中使用。在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("20200116").append(", ").append("1045").toString());
return d4.getTime();
} catch (ParseException e) {
return 0L;
}
}
尝试了许多方法,但没有用。解决设备特定问题的任何帮助都将有所帮助。
EVENT_TIMEZONE存在于CalendarContract.EventsColumns中。