在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在这方面有什么'独特'吗? (即使是我在网上没有发现的已知缺陷,但我还是会让它休息一下)
答案 0 :(得分:0)
是的,我认为这是HTC的“漏洞”。自从几年前我第一次遇到这个问题以来,我花了很多时间研究并尝试解决这个“仅提前一小时”的问题。我认为还有其他设备无法正常运行或以标准方式运行设备日历,但从我能够测试的设备,HTC设备是我唯一找不到的设备解决方案以正确输入所有事件详细信息。
Intent that opens "new calendar event" activity这是我见过的唯一一个解决这一特定问题的问题,但与您一样,我知道传入的数据没有任何问题。