添加到HTC One上的日历不处理事件结束值

时间:2015-04-08 16:11:05

标签: android android-calendar

在Android应用中,我正在尝试将事件添加到本机日历中。此代码在多个其他设备(4.4.2或5.0.2,Nexus 7,Nexus 9,其他手机)上运行良好,但在HTC One上失败,后者坚持认为我正在通过一小时的活动。

Debug显示数据正确传递,并且所有测试的设备都报告了同一事件的相同值,甚至是HTC One。

04-01 14:13:32.545 ...﹕ sendAddToCalendarIntent
04-01 14:13:32.545 ...﹕ title: Spring Break
04-01 14:13:32.545 ...﹕ start: 1427811600000
04-01 14:13:32.545 ...﹕ end  : 1428099600000

下面启动意图的代码:

// Creating intent for native Calendar App
Intent intent = new Intent(Intent.ACTION_INSERT)
        .setData(Events.CONTENT_URI)
        .putExtra(Events.TITLE, title)
        .putExtra(Events.DESCRIPTION, content)
        .putExtra(Events.EVENT_LOCATION, location)
        .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startTime);
if (endTime == -1) {
    intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true);
} else {
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime);
}
startActivity(intent);

HTC One在这方面有什么'独特'吗? (即使是我在网上没有发现的已知缺陷,但我还是会让它休息一下)

1 个答案:

答案 0 :(得分:0)

是的,我认为这是HTC的“漏洞”。自从几年前我第一次遇到这个问题以来,我花了很多时间研究并尝试解决这个“仅提前一小时”的问题。我认为还有其他设备无法正常运行或以标准方式运行设备日历,但从我能够测试的设备,HTC设备是我唯一找不到的设备解决方案以正确输入所有事件详细信息。

Intent that opens "new calendar event" activity这是我见过的唯一一个解决这一特定问题的问题,但与您一样,我知道传入的数据没有任何问题。