我正在使用以下代码将事件添加到日历:
Intent intent = new Intent(Intent.ACTION_INSERT)
.setData(CalendarContract.Events.CONTENT_URI)
.putExtra(CalendarContract.Events.TITLE, finalTitle)
.putExtra(CalendarContract.Events.DESCRIPTION, finalDescription)
.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, finalStartTime)
.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, finalEndTime)
.putExtra(CalendarContract.Events.EVENT_LOCATION, finalLocation);
startActivityForResult(intent, CALENDAR_REQUEST_CODE);
但是,说明未添加到日历中。
此外,我正在使用以下代码在添加事件之前检查日历中是否存在该事件:
long begin = startTime;
long end = endTime;
String[] proj =
new String[]{
CalendarContract.Instances._ID,
CalendarContract.Instances.BEGIN,
CalendarContract.Instances.END,
CalendarContract.Instances.EVENT_ID};
Cursor cursor =
CalendarContract.Instances.query(getContentResolver(), proj, begin, end, title);
if (cursor.getCount() > 0) {
tvAddToCalendar.setVisibility(View.GONE);
isEventInCalendarChecked = false;
return true;
}
以上代码在Moto G2 Android 6中有效,但在Redmi 6A Android 8中无效。
该事件将被添加到Android 8中的日历中,但是当我尝试检查该事件是否存在时,即使存在该事件,光标也返回0。
我还在我的AndroidManifest文件中添加了以下权限:
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission android:name="android.permission.READ_CALENDAR"/>
您能否让我知道为什么事件描述未添加到日历中以及为什么我无法读取事件并检查Android 8的日历中是否存在特定事件?
谢谢。