# ContentResolverCompat

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/content/ContentResolverCompat.java+class:androidx.core.content.ContentResolverCompat) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

*** ** * ** ***


```
public final class ContentResolverCompat
```

<br />

*** ** * ** ***

Helper for accessing features in `https://developer.android.com/reference/android/content/ContentResolver.html` in a backwards compatible fashion.

## Summary

| ### Public methods |
|---|---|
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/database/Cursor.html` | `https://developer.android.com/reference/androidx/core/content/ContentResolverCompat#query(android.content.ContentResolver,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,android.os.CancellationSignal)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/ContentResolver.html resolver, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/net/Uri.html uri, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] projection, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html selection, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] selectionArgs, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html sortOrder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/os/CancellationSignal.html cancellationSignal )` Query the given URI, returning a `https://developer.android.com/reference/android/database/Cursor.html` over the result set with optional support for cancellation. |
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/database/Cursor.html` | `[query](https://developer.android.com/reference/androidx/core/content/ContentResolverCompat#query(android.content.ContentResolver,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,androidx.core.os.CancellationSignal))( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/ContentResolver.html resolver, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/net/Uri.html uri, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] projection, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html selection, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] selectionArgs, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html sortOrder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/os/CancellationSignal cancellationSignal )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/core/content/ContentResolverCompat#query(android.content.ContentResolver,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,android.os.CancellationSignal)` <br /> |

## Public methods

### query

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/core#1.13.0)

```
public static @Nullable Cursor query(
    @NonNull ContentResolver resolver,
    @NonNull Uri uri,
    @Nullable String[] projection,
    @Nullable String selection,
    @Nullable String[] selectionArgs,
    @Nullable String sortOrder,
    @Nullable CancellationSignal cancellationSignal
)
```

Query the given URI, returning a `https://developer.android.com/reference/android/database/Cursor.html` over the result set with optional support for cancellation.

For best performance, the caller should follow these guidelines:

- Provide an explicit projection, to prevent reading data from storage that aren't going to be used.
- Use question mark parameter markers such as 'phone=?' instead of explicit values in the `selection` parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/ContentResolver.html resolver` | resolver to use for the query. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/net/Uri.html uri` | The URI, using the content:// scheme, for the content to retrieve. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] projection` | A list of which columns to return. Passing null will return all columns, which is inefficient. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html selection` | A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] selectionArgs` | You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html sortOrder` | How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/os/CancellationSignal.html cancellationSignal` | A signal to cancel the operation in progress, or null if none. If the operation is canceled, then `https://developer.android.com/reference/androidx/core/os/OperationCanceledException` will be thrown when the query is executed. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/database/Cursor.html` | A Cursor object, which is positioned before the first entry, or null |

| See also |
|---|---|
| `https://developer.android.com/reference/android/database/Cursor.html` |   |

### query

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0) Deprecated in [1.13.0](https://developer.android.com/jetpack/androidx/releases/core#1.13.0)

```
public static @Nullable Cursor [query](https://developer.android.com/reference/androidx/core/content/ContentResolverCompat#query(android.content.ContentResolver,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,androidx.core.os.CancellationSignal))(
    @NonNull ContentResolver resolver,
    @NonNull Uri uri,
    @Nullable String[] projection,
    @Nullable String selection,
    @Nullable String[] selectionArgs,
    @Nullable String sortOrder,
    @Nullable CancellationSignal cancellationSignal
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/core/content/ContentResolverCompat#query(android.content.ContentResolver,android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,android.os.CancellationSignal)`

Query the given URI, returning a `https://developer.android.com/reference/android/database/Cursor.html` over the result set with optional support for cancellation.

For best performance, the caller should follow these guidelines:

- Provide an explicit projection, to prevent reading data from storage that aren't going to be used.
- Use question mark parameter markers such as 'phone=?' instead of explicit values in the `selection` parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/ContentResolver.html resolver` | resolver to use for the query. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/net/Uri.html uri` | The URI, using the content:// scheme, for the content to retrieve. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] projection` | A list of which columns to return. Passing null will return all columns, which is inefficient. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html selection` | A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html String[] selectionArgs` | You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html sortOrder` | How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/os/CancellationSignal cancellationSignal` | A signal to cancel the operation in progress, or null if none. If the operation is canceled, then `https://developer.android.com/reference/androidx/core/os/OperationCanceledException` will be thrown when the query is executed. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/database/Cursor.html` | A Cursor object, which is positioned before the first entry, or null |

| See also |
|---|---|
| `https://developer.android.com/reference/android/database/Cursor.html` |   |