Android 日历获取事件抛出 IOException 404 未找到 - 为什么



我已经为此工作了三天,我没有想法。我已经经历了许多堆栈溢出问题和答案。没有帮助。我的日历使用以下代码成功设置:

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是一个字符串,它标识主日历中存在的事件。为什么此代码会引发异常?我怎么能让它不扔呢?

我可能已经找到了自己的答案。我正在从查询中获取事件 ID 到"content://com.android.calendar/events"数据库表。它有 98 列,我认为"_id"是事件 ID。不是。似乎列"_sync_id"是事件 ID。陈述:

 calendar.events().get("primary", eventId).execute();

当事件 ID 来自列"_sync_id"时,返回正确的事件对象。也许有人可以确认"_sync_id"确实是正确的使用列。

最新更新