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

# UsageEventsQuery.Builder

*** ** * ** ***

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

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.usage.UsageEventsQuery.Builder |

<br />

*** ** * ** ***

Builder for UsageEventsQuery.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery.Builder#Builder(long,%20long)(long beginTimeMillis, long endTimeMillis) ` Constructor that specifies the period for which to return events. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery` | ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery.Builder#build()() ` Builds a read-only UsageEventsQuery object. |
| ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery.Builder` | ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery.Builder#setEventTypes(int[])(int... eventTypes) ` Sets the list of usage event types to be included in the query. |
| ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery.Builder` | ` https://developer.android.com/reference/android/app/usage/UsageEventsQuery.Builder#setPackageNames(java.lang.String[])(https://developer.android.com/reference/java/lang/String pkgNames) ` Sets the list of package names to be included in the query. |

### 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 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder (long beginTimeMillis, 
                long endTimeMillis)
```

Constructor that specifies the period for which to return events.

<br />

| Parameters ||
|---|---|
| `beginTimeMillis` | `long`: Inclusive beginning timestamp, as per `https://developer.android.com/reference/java/lang/System#currentTimeMillis()` Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. <br /> |
| `endTimeMillis` | `long`: Exclusive ending timestamp, as per `https://developer.android.com/reference/java/lang/System#currentTimeMillis()` Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `beginTimeMillis` \< `endTimeMillis` |

## Public methods

### build

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

```
public UsageEventsQuery build ()
```

Builds a read-only UsageEventsQuery object.

<br />

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

### setEventTypes

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

```
public UsageEventsQuery.Builder setEventTypes (int... eventTypes)
```

Sets the list of usage event types to be included in the query.

Note:
An empty array will be returned by `https://developer.android.com/reference/android/app/usage/UsageEventsQuery#getEventTypes()` without calling this method, which indicates querying for all event types. Apps are encouraged to provide a list of event types. Only the matching types supplied will be used to query.

<br />

<br />

| Parameters ||
|---|---|
| `eventTypes` | `int`: the array of the usage event types. See `https://developer.android.com/reference/android/app/usage/UsageEvents.Event`. This value cannot be `null`. Value is one of the following: - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#NONE` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#ACTIVITY_RESUMED` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#ACTIVITY_PAUSED` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#CONFIGURATION_CHANGE` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#USER_INTERACTION` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#SHORTCUT_INVOCATION` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#STANDBY_BUCKET_CHANGED` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#SCREEN_INTERACTIVE` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#SCREEN_NON_INTERACTIVE` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#KEYGUARD_SHOWN` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#KEYGUARD_HIDDEN` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#FOREGROUND_SERVICE_START` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#FOREGROUND_SERVICE_STOP` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#ACTIVITY_STOPPED` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#DEVICE_SHUTDOWN` - `https://developer.android.com/reference/android/app/usage/UsageEvents.Event#DEVICE_STARTUP` |

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

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if any of event types are invalid. |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `eventTypes` is `null` or empty. |

**See also:**

- `https://developer.android.com/reference/android/app/usage/UsageEventsQuery#getEventTypes()`
- `https://developer.android.com/reference/android/app/usage/UsageStatsManager#queryEvents(android.app.usage.UsageEventsQuery)`

### setPackageNames

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

```
public UsageEventsQuery.Builder setPackageNames (String... pkgNames)
```

Sets the list of package names to be included in the query.

Note:
An empty `Set` will be returned by `https://developer.android.com/reference/android/app/usage/UsageEventsQuery#getPackageNames()` without calling this method, which indicates querying usage events for all packages. Apps are encouraged to provide a list of package names. Only the matching names supplied will be used to query.

<br />

<br />

| Parameters ||
|---|---|
| `pkgNames` | `String`: the array of the package names, each package name should be a non-empty string, `null` or empty string("") is omitted. <br /> |

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

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `pkgNames` is `null` or empty. |

**See also:**

- `https://developer.android.com/reference/android/app/usage/UsageEventsQuery#getPackageNames()`
- `https://developer.android.com/reference/android/app/usage/UsageStatsManager#queryEvents(android.app.usage.UsageEventsQuery)`