Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

# AssetsProvider

*** ** * ** ***

` public interface AssetsProvider `   
` `

|---|
| android.content.res.loader.AssetsProvider |

<br />

*** ** * ** ***

Provides callbacks that allow for the value of a file-based resources or assets of a `https://developer.android.com/reference/android/content/res/loader/ResourcesProvider` to be specified or overridden.

## Summary

| ### Public methods ||
|---|---|
| ` default https://developer.android.com/reference/android/content/res/AssetFileDescriptor` | ` https://developer.android.com/reference/android/content/res/loader/AssetsProvider#loadAssetFd(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String path, int accessMode) ` Callback that allows the value of a file-based resources or asset to be specified or overridden. |

## Public methods

### loadAssetFd

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public AssetFileDescriptor loadAssetFd (String path, 
                int accessMode)
```

Callback that allows the value of a file-based resources or asset to be specified or overridden.

The system will take ownership of the file descriptor returned from this method, so `https://developer.android.com/reference/android/os/ParcelFileDescriptor#dup()` the file descriptor before returning if the system should not own it.

There are two situations in which this method will be called:

- AssetManager is queried for an InputStream of an asset using APIs like `https://developer.android.com/reference/android/content/res/AssetManager#open(java.lang.String)` and `https://developer.android.com/reference/android/content/res/AssetManager#openXmlResourceParser(int,%20java.lang.String)`.
- AssetManager is resolving the value of a file-based resource provided by the `https://developer.android.com/reference/android/content/res/loader/ResourcesProvider` this instance is associated with.

If the value retrieved from this callback is null, AssetManager will attempt to find the file-based resource or asset within the APK provided by the ResourcesProvider this instance is associated with.

<br />

| Parameters ||
|---|---|
| `path` | `String`: the asset path being loaded. This value cannot be `null`. <br /> |
| `accessMode` | `int`: the `https://developer.android.com/reference/android/content/res/AssetManager` access mode <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/content/res/AssetFileDescriptor` | <br /> |

**See also:**

- `https://developer.android.com/reference/android/content/res/AssetManager#open(java.lang.String)`