Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/os/ext/SdkExtensions#constants) \| [Methods](https://developer.android.com/reference/android/os/ext/SdkExtensions#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/os/ext/SdkExtensions#inhmethods)

# SdkExtensions

*** ** * ** ***

` public class SdkExtensions `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.os.ext.SdkExtensions |

<br />

*** ** * ** ***

Methods for interacting with the extension SDK.

This class provides information about the extension SDK versions present on this device. Use the `https://developer.android.com/reference/android/os/ext/SdkExtensions#getExtensionVersion(int)` method to lookup the version of a given extension.

The extension version advances as the platform evolves and new APIs are added, so is suitable to use for determining API availability at runtime.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/os/ext/SdkExtensions#AD_SERVICES` <br /> |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/Integer, https://developer.android.com/reference/java/lang/Integer>` | ` https://developer.android.com/reference/android/os/ext/SdkExtensions#getAllExtensionVersions()() ` Return all extension versions that exist on this device. |
| ` static int` | ` https://developer.android.com/reference/android/os/ext/SdkExtensions#getExtensionVersion(int)(int extension) ` Return the version of the specified extensions. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### AD_SERVICES

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [R Extensions 4](https://developer.android.com/sdkExtensions)

```
public static final int AD_SERVICES
```

<br />

<br />

Constant Value: 1000000 (0x000f4240)

## Public methods

### getAllExtensionVersions

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

```
public static Map<Integer, Integer> getAllExtensionVersions ()
```

Return all extension versions that exist on this device.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/Integer, https://developer.android.com/reference/java/lang/Integer>` | a map from extension to extension version. This value cannot be `null`. <br /> |

### getExtensionVersion

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

```
public static int getExtensionVersion (int extension)
```

Return the version of the specified extensions.

This method is suitable to use in conditional statements to determine whether an API is available and is safe to use. For example:

```
if (getExtensionVersion(VERSION_CODES.R) >= 3) {
  // Safely use API available since R extensions version 3
}
```

<br />

<br />

| Parameters ||
|---|---|
| `extension` | `int`: the extension to get the version of. Value is one of the following: - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#R` - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#S` - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#TIRAMISU` - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#UPSIDE_DOWN_CAKE` - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#VANILLA_ICE_CREAM` - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#BAKLAVA` - `https://developer.android.com/reference/android/os/Build.VERSION_CODES#CINNAMON_BUN` - `https://developer.android.com/reference/android/os/ext/SdkExtensions#AD_SERVICES` |

| Returns ||
|---|---|
| `int` | <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if extension is not a valid extension |