for Calendars.CONTENT_URI如何检测日历是否为只读?

Per*_*man 0 android calendar

节日和生日日历的事件显然无法修改.一般来说,如何判断日历的事件是否为只读?我猜我可以查看CALENDAR_ACCESS_LEVEL列.任何人都知道,有什么价值可以检查?

Mat*_*ini 5

是的,你需要检查一下它的值CALENDAR_ACCESS_LEVEL.

您应该获得具有以下访问级别的所有日历:

CAL_ACCESS_OWNER
完全访问日历

CAL_ACCESS_EDITOR
完全访问权限可以修改日历,但不能修改访问控制设置

CAL_ACCESS_CONTRIBUTOR
完全访问权限可以修改日历,但不能修改访问控制设置

CAL_ACCESS_ROOT
域管理员

这是一个返回所有可写日历的示例:

String selection = "(" + CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL + " =  ? OR "
        + CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL + " =  ? OR "
        + CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL + " =  ? OR "
        + CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL + " =  ?)";

String[] selectionArgs = new String[]{
        Integer.toString(CalendarContract.Calendars.CAL_ACCESS_OWNER),
        Integer.toString(CalendarContract.Calendars.CAL_ACCESS_EDITOR),
        Integer.toString(CalendarContract.Calendars.CAL_ACCESS_CONTRIBUTOR),
        Integer.toString(CalendarContract.Calendars.CAL_ACCESS_ROOT)};

Cursor cursor = getContentResolver().query(CalendarContract.Calendars.CONTENT_URI, null, selection, selectionArgs, null);
Run Code Online (Sandbox Code Playgroud)