Google Calendar API V3安卓 - 获取freeBusyRequest的全天活动

时间:2018-02-20 10:44:40

标签: android kotlin google-calendar-api

我正在尝试使用google-api-services-calendar:v3 for Android(使用Kotlin)获取我的Google组织内其他人的免费忙碌数据。对于有一定持续时间的事件,我的时间恰到好处。但是整天的活动都没有出现在名单上。关于此的文档几乎无处可寻,我在developers.google.com上找到的内容包含2013年已弃用的代码......

// ...
val busyTimesList = mutableListOf<AgendaPlotter.TimeSpan>()
    SessionService.sharedInstance.getGoogleAccount(activity)
        observeOn(Schedulers.io())
        .subscribe {
            mCredential!!.selectedAccount = it.account
            val request = FreeBusyRequest()

            val durationCal = Calendar.getInstance()
            durationCal.time = startDay.time
            Calendars.startOfDay(durationCal)
            request.timeMin = DateTime(durationCal.time)
            durationCal.add(Calendar.DATE, 1)
            request.timeMax = DateTime(durationCal.time)


            val requestItems = listOf(FreeBusyRequestItem().setId("email@from.colleague"))
            request.items = requestItems
            request.timeZone = TimeZone.getDefault().id

            val busyTimes: FreeBusyResponse
               try {
                    val query = mService!!.freebusy().query(request)
                    // Use partial GET to retrieve only needed fields.
                    query.fields = "calendars"
                    busyTimes = query.execute()
                    busyTimes.calendars.forEach {
                    it.toPair().second.busy.forEach { timeSpan ->
                        val busyTime = AgendaPlotter.TimeSpan()
                        busyTime.fromTime.timeInMillis = timeSpan.start.value
                        busyTime.toTime.timeInMillis = timeSpan.end.value
                        busyTimesList.add(busyTime)
                    }
                 }
                 emitter.onNext(busyTimesList)
             } catch (e: IOException) {
                 e.printStackTrace()
                 // ...
             }
         }
// ...

所以我的问题是,我如何获得全天活动?

1 个答案:

答案 0 :(得分:4)

经过一番搜索,我注意到API实际上没有任何问题。这是一整天活动忙碌的设置。

默认设置为free,这使得它不显示为忙碌时间,这是有道理的。许多人都没有注意到这一点,他们将在那天“免费”。 enter image description here