我已经为此工作了三天,而且我没有想法。我经历了很多stackOverflow问题和答案。没人帮忙。使用以下代码成功设置了我的日历:
com.google.api.client.http.HttpTransport x = AndroidHttp.newCompatibleTransport();
com.google.api.client.json.gson.GsonFactory gF = new GsonFactory();
calendar = new Calendar.Builder(x, gF, credential)
.setApplicationName(getString(R.string.app_name))
.build();
我知道日历服务是可以的,因为我可以用它做很多事情,比如插入一个事件。但是这个相当简单的代码会抛出一个未找到的IOException 404:
Event event = calendar.events().get("primary", eventId).execute();
我知道eventId是一个字符串,用于存储主日历中存在的事件。为什么这段代码会抛出异常?我怎么能让它不扔呢?
我可能找到了自己的答案。我将查询中的eventId从“content://com.android.calendar/events”数据库表中获取。它有98列,我认为“_id”是事件ID。它不是。似乎列“_sync_id”是事件ID。声明:
calendar.events().get("primary", eventId).execute();
当eventId来自列“_sync_id”时,返回正确的Event对象。也许有人可以确认“_sync_id”确实是正确使用的列。