gpt4 book ai didi

android - Android 5.0 中缺少 CalendarContract.Events._ID

转载 作者:行者123 更新时间:2023-11-29 20:55:25 25 4
gpt4 key购买 nike

我的应用使用 Events._IDCalendarContract.Events 中查询特定事件。在尝试在 5.0 设备上运行它之前,它运行良好,现在我得到一个异常

01-12 17:28:50.525: E/Unknown Source(18499): android.database.sqlite.SQLiteException:
no such column: CalendarContract.Events._ID (code 1): ,
while compiling:
SELECT _id, account_type, title, organizer, description, eventLocation,
hasAlarm, calendar_id
FROM view_events
WHERE (lastSynced = 0 AND (CalendarContract.Events._ID=1))

查询 Events 中的所有列确实不会返回 _ID。知道为什么这已被删除或者它是否是一个错误?我似乎再也找不到唯一标识事件的方法了。

这是我的查询:

String[] projection = new String[]{Events._ID, Events.ACCOUNT_TYPE, Events.TITLE,
Events.ORGANIZER, Events.DESCRIPTION, Events.EVENT_LOCATION, Events.HAS_ALARM,
Events.CALENDAR_ID};

Cursor cursor = context.getContentResolver().query(EVENTS_CONTENT_URI, projection,
"CalendarContract.Events._ID=" + eventId, null, null);

感谢您提供任何信息!

最佳答案

@Andrew 的回答不对。您错误地使用了 selectionClauseselectionArgs 参数。

这是你正在做的:

Cursor cursor = context.getContentResolver().query(EVENTS_CONTENT_URI, projection,
CalendarContract.Events._ID + "=" + eventId, null, null);

这是你应该做的:

Cursor cursor = context.getContentResolver().query(EVENTS_CONTENT_URI, projection,
CalendarContract.Events._ID + " = ?", new String[]{eventId}, null);

eventId 需要在 selectionArgs 中传递,以便 contentResolver 可以为您构建查询语句,链接 selectionArgs 并将它们替换为 ? selectionClause 参数中的字符。

这个问题已经三年了,但我希望我的回答可以帮助到其他人。

关于android - Android 5.0 中缺少 CalendarContract.Events._ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27907677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com