CalendarContract.Instances.CONTENT_URI 每次使用都会报Unknown URL content://com.android.calendar/instances/when
时间: 2023-12-02 11:06:27 浏览: 65
这个问题可能是因为你的应用程序没有适当的权限来访问日历数据。你需要在你的应用程序的Manifest文件中添加以下权限:
```
<uses-permission android:name="android.permission.READ_CALENDAR" />
```
如果你已经添加了这个权限,但是仍然出现这个错误,那么可能是因为你的设备上没有安装日历应用程序或者日历应用程序没有完全初始化。你可以尝试安装或重新安装日历应用程序,或者在设备上打开日历应用程序并确保它已经完全初始化。
相关问题
CalendarContract.Instances.CONTENT_URIUnknown URL content://com.android.calendar/instances/when
这是一个 Android Calendar Provider 中的 URI,用于查询某个时间段内的所有日历事件。具体来说,这个 URI 对应的是 Instances 表,表示某个日历事件在时间轴上的实例。当我们需要查询某个时间段内的所有日历事件时,可以使用这个 URI 进行查询。例如,我们可以通过该 URI 查询明天的日历事件,如下所示:
```
long start = System.currentTimeMillis() + DateUtils.DAY_IN_MILLIS;
long end = start + DateUtils.DAY_IN_MILLIS;
Cursor cursor = getContentResolver().query(CalendarContract.Instances.CONTENT_URI,
null,
CalendarContract.Instances.DTSTART + ">=? and "+ CalendarContract.Instances.DTSTART + "<=?",
new String[]{String.valueOf(start), String.valueOf(end)},
CalendarContract.Instances.DTSTART + " ASC");
```
这段代码会查询明天的所有日历事件,并按照开始时间升序排序。
CalendarContract.Instances.CONTENT_URIUnknown URL content://com.android.calendar/instances/when报错
如果你在使用 `CalendarContract.Instances.CONTENT_URI` 进行查询时出现了 `Unknown URL content://com.android.calendar/instances/when` 的错误,可能是因为你在查询时使用了 `when` 这个参数,而该参数已经在 Android 4.0 中被废弃了。
Android 4.0 之前的版本是支持通过 `content://com.android.calendar/instances/when` URI 进行查询的,但是从 Android 4.0 开始,这个 URI 就被废弃了。如果你需要查询某个时间段内的日历事件,可以使用 `CalendarContract.Instances.CONTENT_URI` 这个 URI,如下所示:
```
long startMillis = ...;
long endMillis = ...;
Cursor cursor = getContentResolver().query(
CalendarContract.Instances.CONTENT_URI,
new String[] { ... },
CalendarContract.Instances.BEGIN + " >= " + startMillis + " AND " + CalendarContract.Instances.END + " <= " + endMillis,
null,
CalendarContract.Instances.BEGIN + " ASC"
);
```
以上代码可以查询指定时间段内的日历事件,并按照开始时间升序排序。注意,`startMillis` 和 `endMillis` 分别表示需要查询的时间段的起始时间和结束时间,单位为毫秒。
阅读全文