Android 对于Calendars.CONTENT\u URI如何检测日历是否为只读?
假日和生日日历的事件显然无法修改。通常,如何判断日历的事件是否为只读?我猜我可以看看日历访问级别栏。任何人都知道,有什么价值要检查?p>除非有人纠正我,我会认为以下答案是正确的。 通过Android 对于Calendars.CONTENT\u URI如何检测日历是否为只读?,android,calendar,Android,Calendar,假日和生日日历的事件显然无法修改。通常,如何判断日历的事件是否为只读?我猜我可以看看日历访问级别栏。任何人都知道,有什么价值要检查?p>除非有人纠正我,我会认为以下答案是正确的。 通过 我得到了一个不包括假日或生日日历的列表。因此,我假设列表中的任何日历都是可写的,因此,我的应用程序可以轻松地将假日和生日设置为只读。到目前为止,这个假设一直对我起作用。 < P>我会认为以下是正确的答案,除非有人纠正我。 通过 我得到了一个不包括假日或生日日历的列表。因此,我假设列表中的任何日历都是可写的,因此,
我得到了一个不包括假日或生日日历的列表。因此,我假设列表中的任何日历都是可写的,因此,我的应用程序可以轻松地将假日和生日设置为只读。到目前为止,这个假设一直对我起作用。 < P>我会认为以下是正确的答案,除非有人纠正我。 通过
我得到了一个不包括假日或生日日历的列表。因此,我假设列表中的任何日历都是可写的,因此,我的应用程序可以轻松地将假日和生日设置为只读。到目前为止,这个假设对我有效。是的,您需要检查
日历访问级别的值
您应该获得具有以下访问级别的所有日历:
完全访问日历
具有修改日历的完全访问权限,但不能修改
访问控制设置
具有修改日历的完全访问权限,但不能修改
访问控制设置
域管理员
这是一个返回所有可写日历的示例:
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);
是的,您需要检查CALENDAR\u ACCESS\u LEVEL
的值
您应该获得具有以下访问级别的所有日历:
完全访问日历
具有修改日历的完全访问权限,但不能修改
访问控制设置
具有修改日历的完全访问权限,但不能修改
访问控制设置
域管理员
这是一个返回所有可写日历的示例:
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);
出于好奇,你是怎么知道的?我搜索了很多文档,但什么也没找到。另外,你能更详细地解释一下每个访问级别的含义吗?两个有相同的描述。显然,还有其他访问级别,您没有显示。了解所有这些都是什么意思会很有帮助。我所知道的只是你在你的黄色方框里复制的简洁的字符串。没有说明它们的含义。可以找到有关所有日历访问级别的文档。如您所见,还有5个级别无法修改日历(CAL\u ACCESS\u FREEBUSY
,CAL\u ACCESS\u NONE
,CAL\u ACCESS\u OVERRIDE
,CAL\u ACCESS\u READ
,CAL\u response
)。黄色区域中的每个访问级别也可以单击并打开引用说明的文档。不幸的是,没有更多关于单一级别含义的详细信息。如果你称之为文档。这就是我开始的地方。这太差劲了。如果你愿意的话,就投我一票。我仍然认为现有的文档是蹩脚的。只有猜测或跟踪android源代码才能真正了解其中的一些含义(是的,有些是显而易见的)。我花了大量时间试图从android文档中获得意义,这大大减慢了我的开发速度。很多人也这么说。谷歌,开始做正确的事吧。出于好奇,你是怎么知道的?我搜索了很多文档,但什么也没找到。另外,你能更详细地解释一下每个访问级别的含义吗?两个有相同的描述。显然,还有其他访问级别,您没有显示。了解所有这些都是什么意思会很有帮助。我所知道的只是你在你的黄色方框里复制的简洁的字符串。没有说明它们的含义。可以找到有关所有日历访问级别的文档。如您所见,还有5个级别无法修改日历(CAL\u ACCESS\u FREEBUSY
,CAL\u ACCESS\u NONE
,CAL\u ACCESS\u OVERRIDE
,CAL\u ACCESS\u READ
,CAL\u response
)。黄色区域中的每个访问级别也可以单击并打开引用说明的文档。不幸的是,没有更多关于单一级别含义的详细信息。如果你称之为文档。这就是我开始的地方。这太差劲了。如果你愿意的话,就投我一票。我仍然认为现有的文档是蹩脚的。只有猜测或跟踪android源代码才能真正了解其中的一些含义(是的,有些是显而易见的)。我花了大量时间试图从android文档中获得意义,这大大减慢了我的开发速度。很多人也这么说。谷歌,开始做它的权利。