# ContentResolverCompat

# 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)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/core/content/ContentResolverCompat "View this page in Java")

<br />

```
class ContentResolverCompat
```

<br />

*** ** * ** ***

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

## Summary

|                                      ### Public functions                                       |
|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `java-static `[Cursor](https://developer.android.com/reference/android/database/Cursor.html)`?` | [query](https://developer.android.com/reference/kotlin/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))`(` ` resolver: `[ContentResolver](https://developer.android.com/reference/android/content/ContentResolver.html)`,` ` uri: `[Uri](https://developer.android.com/reference/android/net/Uri.html)`,` ` projection: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?,` ` selection: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` selectionArgs: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?,` ` sortOrder: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` cancellationSignal: `[CancellationSignal](https://developer.android.com/reference/android/os/CancellationSignal.html)`?` `)` Query the given URI, returning a[Cursor](https://developer.android.com/reference/android/database/Cursor.html)over the result set with optional support for cancellation.                                                                                                                                                     |
| `java-static `[Cursor](https://developer.android.com/reference/android/database/Cursor.html)`?` | ~~[query](https://developer.android.com/reference/kotlin/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))~~`(` ` resolver: `[ContentResolver](https://developer.android.com/reference/android/content/ContentResolver.html)`,` ` uri: `[Uri](https://developer.android.com/reference/android/net/Uri.html)`,` ` projection: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?,` ` selection: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` selectionArgs: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?,` ` sortOrder: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` cancellationSignal: `[CancellationSignal](https://developer.android.com/reference/kotlin/androidx/core/os/CancellationSignal)`?` `)` **This function is deprecated.** Use[query](https://developer.android.com/reference/kotlin/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 functions

### query

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

```
java-static fun query(
    resolver: ContentResolver,
    uri: Uri,
    projection: Array<String!>?,
    selection: String?,
    selectionArgs: Array<String!>?,
    sortOrder: String?,
    cancellationSignal: CancellationSignal?
): Cursor?
```

Query the given URI, returning a[Cursor](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                                                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `resolver: `[ContentResolver](https://developer.android.com/reference/android/content/ContentResolver.html)                                                                               | resolver to use for the query.                                                                                                                                                                                                                                      |
| `uri: `[Uri](https://developer.android.com/reference/android/net/Uri.html)                                                                                                                | The URI, using the content:// scheme, for the content to retrieve.                                                                                                                                                                                                  |
| `projection: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?`    | A list of which columns to return. Passing null will return all columns, which is inefficient.                                                                                                                                                                      |
| `selection: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`                                                                                         | 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.                                                                                                        |
| `selectionArgs: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?` | 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.                                                                                      |
| `sortOrder: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`                                                                                         | 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.                                                                                                   |
| `cancellationSignal: `[CancellationSignal](https://developer.android.com/reference/android/os/CancellationSignal.html)`?`                                                                 | A signal to cancel the operation in progress, or null if none. If the operation is canceled, then[OperationCanceledException](https://developer.android.com/reference/kotlin/androidx/core/os/OperationCanceledException)will be thrown when the query is executed. |

|                                      Returns                                      |
|-----------------------------------------------------------------------------------|----------------------------------------------------------------------|
| [Cursor](https://developer.android.com/reference/android/database/Cursor.html)`?` | A Cursor object, which is positioned before the first entry, or null |

|                                    See also                                    |
|--------------------------------------------------------------------------------|---|
| [Cursor](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)  

```
java-static fun [query](https://developer.android.com/reference/kotlin/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))(
    resolver: ContentResolver,
    uri: Uri,
    projection: Array<String!>?,
    selection: String?,
    selectionArgs: Array<String!>?,
    sortOrder: String?,
    cancellationSignal: CancellationSignal?
): Cursor?
```
| **This function is deprecated.**   
|
| Use[query](https://developer.android.com/reference/kotlin/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[Cursor](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                                                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `resolver: `[ContentResolver](https://developer.android.com/reference/android/content/ContentResolver.html)                                                                               | resolver to use for the query.                                                                                                                                                                                                                                      |
| `uri: `[Uri](https://developer.android.com/reference/android/net/Uri.html)                                                                                                                | The URI, using the content:// scheme, for the content to retrieve.                                                                                                                                                                                                  |
| `projection: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?`    | A list of which columns to return. Passing null will return all columns, which is inefficient.                                                                                                                                                                      |
| `selection: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`                                                                                         | 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.                                                                                                        |
| `selectionArgs: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?` | 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.                                                                                      |
| `sortOrder: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`                                                                                         | 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.                                                                                                   |
| `cancellationSignal: `[CancellationSignal](https://developer.android.com/reference/kotlin/androidx/core/os/CancellationSignal)`?`                                                         | A signal to cancel the operation in progress, or null if none. If the operation is canceled, then[OperationCanceledException](https://developer.android.com/reference/kotlin/androidx/core/os/OperationCanceledException)will be thrown when the query is executed. |

|                                      Returns                                      |
|-----------------------------------------------------------------------------------|----------------------------------------------------------------------|
| [Cursor](https://developer.android.com/reference/android/database/Cursor.html)`?` | A Cursor object, which is positioned before the first entry, or null |

|                                    See also                                    |
|--------------------------------------------------------------------------------|---|
| [Cursor](https://developer.android.com/reference/android/database/Cursor.html) |   |