草庐IT

android - Google Calendar API V3 android - 免费获取全天事件BusyRequest

coder 2023-12-13 原文

我正在尝试使用适用于 Android 的 google-api-services-calendar:v3(使用 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()
                 // ...
             }
         }
// ...

那么我的问题是,我如何获得全天事件?

最佳答案

经过一些搜索,我发现 API 实际上没有任何问题。这是一整天忙碌的免费 Activity 的设置。

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

关于android - Google Calendar API V3 android - 免费获取全天事件BusyRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48883417/

有关android - Google Calendar API V3 android - 免费获取全天事件BusyRequest的更多相关文章

随机推荐