Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#pubctors) \| [Methods](https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#inhmethods)

# Control.StatelessBuilder

*** ** * ** ***

` public static final class Control.StatelessBuilder `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.service.controls.Control.StatelessBuilder |

<br />

*** ** * ** ***

Builder class for `https://developer.android.com/reference/android/service/controls/Control`. This class facilitates the creation of `https://developer.android.com/reference/android/service/controls/Control` with no state. Must be used to provide controls for `https://developer.android.com/reference/android/service/controls/ControlsProviderService#createPublisherForAllAvailable()` and `https://developer.android.com/reference/android/service/controls/ControlsProviderService#createPublisherForSuggested()`. It provides the following defaults for non-optional parameters:

- Device type: `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_UNKNOWN`
- Title: `""`
- Subtitle: `""`

This fixes the values relating to state of the `https://developer.android.com/reference/android/service/controls/Control` as required by `https://developer.android.com/reference/android/service/controls/ControlsProviderService#createPublisherForAllAvailable()`:

- Status: `https://developer.android.com/reference/android/service/controls/Control#STATUS_UNKNOWN`
- Control template: `https://developer.android.com/reference/android/service/controls/templates/ControlTemplate#getNoTemplateObject()`
- Status text: `""`
- Auth Required: `true`

<br />

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#StatelessBuilder(android.service.controls.Control)(https://developer.android.com/reference/android/service/controls/Control control) ` Creates a `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` using an existing `https://developer.android.com/reference/android/service/controls/Control` as a base. |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#StatelessBuilder(java.lang.String,%20android.app.PendingIntent)(https://developer.android.com/reference/java/lang/String controlId, https://developer.android.com/reference/android/app/PendingIntent appIntent) ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/service/controls/Control` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#build()() ` |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setAppIntent(android.app.PendingIntent)(https://developer.android.com/reference/android/app/PendingIntent appIntent) ` |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setControlId(java.lang.String)(https://developer.android.com/reference/java/lang/String controlId) ` |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setCustomColor(android.content.res.ColorStateList)(https://developer.android.com/reference/android/content/res/ColorStateList customColor) ` Optional color to be shown with the `https://developer.android.com/reference/android/service/controls/Control`. |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setCustomIcon(android.graphics.drawable.Icon)(https://developer.android.com/reference/android/graphics/drawable/Icon customIcon) ` Optional icon to be shown with the `https://developer.android.com/reference/android/service/controls/Control`. |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setDeviceType(int)(int deviceType) ` |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setStructure(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence structure) ` Optional top-level group to help define the `https://developer.android.com/reference/android/service/controls/Control`'s location, visible to the user. |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setSubtitle(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence subtitle) ` |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setTitle(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence title) ` |
| ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | ` https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder#setZone(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence zone) ` Optional group name to help define the `https://developer.android.com/reference/android/service/controls/Control`'s location within a structure, visible to the user. |

### 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*.

## Public constructors

### StatelessBuilder

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

```
public StatelessBuilder (Control control)
```

Creates a `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` using an existing `https://developer.android.com/reference/android/service/controls/Control` as a base.

<br />

| Parameters ||
|---|---|
| `control` | `Control`: base for the builder. This value cannot be `null`. <br /> |

### StatelessBuilder

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

```
public StatelessBuilder (String controlId, 
                PendingIntent appIntent)
```

<br />

<br />

| Parameters ||
|---|---|
| `controlId` | `String`: the identifier for the `https://developer.android.com/reference/android/service/controls/Control` This value cannot be `null`. <br /> |
| `appIntent` | `PendingIntent`: the pending intent linking to the device Activity. This value cannot be `null`. <br /> |

## Public methods

### build

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

```
public Control build ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control` | a valid `https://developer.android.com/reference/android/service/controls/Control` This value cannot be `null`. <br /> |

### setAppIntent

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

```
public Control.StatelessBuilder setAppIntent (PendingIntent appIntent)
```

<br />

<br />

| Parameters ||
|---|---|
| `appIntent` | `PendingIntent`: a `https://developer.android.com/reference/android/app/PendingIntent` linking to an Activity for the `https://developer.android.com/reference/android/service/controls/Control` This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setControlId

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

```
public Control.StatelessBuilder setControlId (String controlId)
```

<br />

<br />

| Parameters ||
|---|---|
| `controlId` | `String`: the identifier for the `https://developer.android.com/reference/android/service/controls/Control` This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setCustomColor

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

```
public Control.StatelessBuilder setCustomColor (ColorStateList customColor)
```

Optional color to be shown with the `https://developer.android.com/reference/android/service/controls/Control`. It is highly recommended to let the system default the color unless the default is not suitable for the application.

<br />

| Parameters ||
|---|---|
| `customColor` | `ColorStateList`: background color to use. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setCustomIcon

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

```
public Control.StatelessBuilder setCustomIcon (Icon customIcon)
```

Optional icon to be shown with the `https://developer.android.com/reference/android/service/controls/Control`. It is highly recommended to let the system default the icon unless the default icon is not suitable.

<br />

| Parameters ||
|---|---|
| `customIcon` | `Icon`: icon to show. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setDeviceType

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

```
public Control.StatelessBuilder setDeviceType (int deviceType)
```

<br />

<br />

| Parameters ||
|---|---|
| `deviceType` | `int`: type of device represented by this `https://developer.android.com/reference/android/service/controls/Control`, used to determine the default icon and color. Value is one of the following: - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_ON_OFF` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_START_STOP` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_OPEN_CLOSE` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_LOCK_UNLOCK` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_ARM_DISARM` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_TEMP_SETTING` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GENERIC_VIEWSTREAM` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_UNKNOWN` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_AC_HEATER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_AC_UNIT` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_AIR_FRESHENER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_AIR_PURIFIER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_COFFEE_MAKER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DEHUMIDIFIER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DISPLAY` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_FAN` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_HOOD` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_HUMIDIFIER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_KETTLE` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_LIGHT` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_MICROWAVE` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_OUTLET` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_RADIATOR` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_REMOTE_CONTROL` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_SET_TOP` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_STANDMIXER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_STYLER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_SWITCH` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_TV` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_WATER_HEATER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DISHWASHER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DRYER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_MOP` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_MOWER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_MULTICOOKER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_SHOWER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_SPRINKLER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_WASHER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_VACUUM` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_AWNING` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_BLINDS` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_CLOSET` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_CURTAIN` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DOOR` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DRAWER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GARAGE` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_GATE` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_PERGOLA` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_SHUTTER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_WINDOW` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_VALVE` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_LOCK` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_SECURITY_SYSTEM` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_HEATER` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_REFRIGERATOR` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_THERMOSTAT` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_CAMERA` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_DOORBELL` - `https://developer.android.com/reference/android/service/controls/DeviceTypes#TYPE_ROUTINE` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setStructure

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

```
public Control.StatelessBuilder setStructure (CharSequence structure)
```

Optional top-level group to help define the `https://developer.android.com/reference/android/service/controls/Control`'s location, visible to the user. If not present, the application name will be used as the top-level group. A structure contains zones which contains controls.

<br />

| Parameters ||
|---|---|
| `structure` | `CharSequence`: name of the structure containing the control. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setSubtitle

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

```
public Control.StatelessBuilder setSubtitle (CharSequence subtitle)
```

<br />

<br />

| Parameters ||
|---|---|
| `subtitle` | `CharSequence`: additional information about the `https://developer.android.com/reference/android/service/controls/Control`, to appear underneath the title. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setTitle

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

```
public Control.StatelessBuilder setTitle (CharSequence title)
```

<br />

<br />

| Parameters ||
|---|---|
| `title` | `CharSequence`: the user facing name of the `https://developer.android.com/reference/android/service/controls/Control` This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |

### setZone

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

```
public Control.StatelessBuilder setZone (CharSequence zone)
```

Optional group name to help define the `https://developer.android.com/reference/android/service/controls/Control`'s location within a structure, visible to the user. A structure contains zones which contains controls.

<br />

| Parameters ||
|---|---|
| `zone` | `CharSequence`: name of the zone containing the control. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/service/controls/Control.StatelessBuilder` | `this` This value cannot be `null`. <br /> |