# CronetUtil

# CronetUtil

Artifact:[androidx.media3:media3-datasource-cronet](https://developer.android.com/jetpack/androidx/releases/media3)  
[View Source](https://cs.android.com/search?q=file:androidx/media3/datasource/cronet/CronetUtil.java+class:androidx.media3.datasource.cronet.CronetUtil)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/datasource/cronet/CronetUtil "View this page in Java")

<br />

```
class CronetUtil
```

<br />

*** ** * ** ***

Cronet utility methods.

## Summary

|                                                          ### Public functions                                                           |
|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `java-static `[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)`?` | [buildCronetEngine](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetUtil#buildCronetEngine(android.content.Context))`(context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!)` Builds a[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)suitable for use with[CronetDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetDataSource).                                                                                                                                                                                                                                                                                                                                                                |
| `java-static `[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)`?` | `@`[UnstableApi](https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi) [buildCronetEngine](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetUtil#buildCronetEngine(android.content.Context,java.lang.String,boolean))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` userAgent: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?,` ` preferGooglePlayServices: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) `)` Builds a[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)suitable for use with[CronetDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetDataSource). |

## Public functions

### buildCronetEngine

```
java-static fun buildCronetEngine(context: Context!): CronetEngine?
```

Builds a[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)suitable for use with[CronetDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetDataSource). When choosing a[Cronet provider](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetProvider.html)to build the[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html), disabled providers are not considered. Neither are fallback providers, since it's more efficient to use[DefaultHttpDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultHttpDataSource)than it is to use[CronetDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetDataSource)with a fallback[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html).

Note that it's recommended for applications to create only one instance of[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html), so if your application already has an instance for performing other networking, then that instance should be used and calling this method is unnecessary. See the[Android developer guide](https://developer.android.com/guide/topics/connectivity/cronet/start)to learn more about using Cronet for network operations.  

|                                          Parameters                                           |
|-----------------------------------------------------------------------------------------------|------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!` | A context. |

|                                                          Returns                                                          |
|---------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)`?` | The[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html), or`null`if no suitable engine could be built. |

### buildCronetEngine

```
@UnstableApi
java-static fun buildCronetEngine(
    context: Context!,
    userAgent: String?,
    preferGooglePlayServices: Boolean
): CronetEngine?
```

Builds a[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)suitable for use with[CronetDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetDataSource). When choosing a[Cronet provider](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetProvider.html)to build the[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html), disabled providers are not considered. Neither are fallback providers, since it's more efficient to use[DefaultHttpDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DefaultHttpDataSource)than it is to use[CronetDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cronet/CronetDataSource)with a fallback[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html).

Note that it's recommended for applications to create only one instance of[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html), so if your application already has an instance for performing other networking, then that instance should be used and calling this method is unnecessary. See the[Android developer guide](https://developer.android.com/guide/topics/connectivity/cronet/start)to learn more about using Cronet for network operations.  

|                                                   Parameters                                                    |
|-----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                   | A context.                                                                                                                                                                              |
| `userAgent: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`               | A default user agent, or`null`to use a default user agent of the[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html). |
| `preferGooglePlayServices: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether Cronet from Google Play Services should be preferred over Cronet Embedded, if both are available.                                                                               |

|                                                          Returns                                                          |
|---------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html)`?` | The[CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.html), or`null`if no suitable engine could be built. |