Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#inhmethods)

# ObservingDevicePresenceRequest.Builder

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/companion/ObservingDevicePresenceRequest.Builder "View this page in Kotlin") \|Java


`
public
static
final

class
ObservingDevicePresenceRequest.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.companion.ObservingDevicePresenceRequest.Builder |

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest`

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#Builder()() ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest` | ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#build()() ` |
| ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder` | ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#setAssociationId(int)(int associationId) ` Set the association id to be observed for device presence. |
| ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder` | ` https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#setUuid(android.os.ParcelUuid)(https://developer.android.com/reference/android/os/ParcelUuid uuid) ` Set the ParcelUuid to be observed for device presence. |

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

### Builder

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

```
public Builder ()
```

<br />

<br />

## Public methods

### build

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

```
public ObservingDevicePresenceRequest build ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest` | This value cannot be `null`. <br /> |

### setAssociationId

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

```
public ObservingDevicePresenceRequest.Builder setAssociationId (int associationId)
```

Set the association id to be observed for device presence.

The provided device must be `https://developer.android.com/reference/android/companion/CompanionDeviceManager#associate(android.companion.AssociationRequest,%20android.companion.CompanionDeviceManager.Callback,%20android.os.Handler)`
with the calling app before calling this method if using this API.

Caller must implement a single `https://developer.android.com/reference/android/companion/CompanionDeviceService` which will be bound to and
receive callbacks to
`https://developer.android.com/reference/android/companion/CompanionDeviceService#onDevicePresenceEvent(android.companion.DevicePresenceEvent)`.

Calling apps must use either `https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#setUuid(android.os.ParcelUuid)`
or this API, but not both.

<br />

<br />

| Parameters ||
|---|---|
| `associationId` | `int`: The association id for observing device presence. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder` | This value cannot be `null`. <br /> |

### setUuid

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

```
public ObservingDevicePresenceRequest.Builder setUuid (ParcelUuid uuid)
```

Set the ParcelUuid to be observed for device presence.

It does not require to create the association before calling this API.
This only supports classic Bluetooth scan and caller must implement
a single `https://developer.android.com/reference/android/companion/CompanionDeviceService` which will be bound to and receive callbacks to
`https://developer.android.com/reference/android/companion/CompanionDeviceService#onDevicePresenceEvent(android.companion.DevicePresenceEvent)`.

The Uuid should be matching one of the ParcelUuid form
`https://developer.android.com/reference/android/bluetooth/BluetoothDevice#getUuids()`

Calling apps must use either this API or `https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder#setAssociationId(int)`,
but not both.

Calling app must hold the
`https://developer.android.com/reference/android/companion/AssociationRequest#DEVICE_PROFILE_AUTOMOTIVE_PROJECTION` profile.
.   
Requires `https://developer.android.com/reference/android/Manifest.permission#REQUEST_OBSERVE_DEVICE_UUID_PRESENCE` and `https://developer.android.com/reference/android/Manifest.permission#BLUETOOTH_CONNECT` and `https://developer.android.com/reference/android/Manifest.permission#BLUETOOTH_SCAN`

<br />

<br />

| Parameters ||
|---|---|
| `uuid` | `ParcelUuid`: The ParcelUuid for observing device presence. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/companion/ObservingDevicePresenceRequest.Builder` | This value cannot be `null`. <br /> |