# UserDriverManager

Summary:[Methods](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#)  

# UserDriverManager

`
public


class
UserDriverManager
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object)`


``


`

|---|--------------------------------------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | com.google.android.things.userdriver.UserDriverManager |

<br />

*** ** * ** ***

Manager for all Android Things user drivers. This class is used to register/unregister user-defined drivers.

## Summary

|                                                                                                                                                                                                                                                       ### Public methods                                                                                                                                                                                                                                                        ||
|-------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` static `[UserDriverManager](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager) | ` `[getInstance](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#getInstance())`() ` Get a UserDriverManager object.                                                                                                                                                                                                                              |
| ` void`                                                                                                                       | ` `[registerGnssDriver](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#registerGnssDriver(com.google.android.things.userdriver.location.GnssDriver))`(`[GnssDriver](https://developer.android.com/reference/com/google/android/things/userdriver/location/GnssDriver)` driver) ` Register a GNSS driver with the user driver manager.            |
| ` void`                                                                                                                       | ` `[registerInputDriver](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#registerInputDriver(com.google.android.things.userdriver.input.InputDriver))`(`[InputDriver](https://developer.android.com/reference/com/google/android/things/userdriver/input/InputDriver)` driver) ` Register a input driver with the user driver manager.            |
| ` void`                                                                                                                       | ` `[registerLowpanDriver](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#registerLowpanDriver(com.google.android.things.userdriver.lowpan.LowpanDriver))`(`[LowpanDriver](https://developer.android.com/reference/com/google/android/things/userdriver/lowpan/LowpanDriver)` driver) ` Register a LoWPAN Driver and start the network interface. |
| ` void`                                                                                                                       | ` `[registerSensor](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#registerSensor(com.google.android.things.userdriver.sensor.UserSensor))`(`[UserSensor](https://developer.android.com/reference/com/google/android/things/userdriver/sensor/UserSensor)` sensor) ` Register a user sensor with the user driver manager.                        |
| ` void`                                                                                                                       | ` `[unregisterGnssDriver](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#unregisterGnssDriver())`() ` Unregister the GNSS driver.                                                                                                                                                                                                                |
| ` void`                                                                                                                       | ` `[unregisterInputDriver](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#unregisterInputDriver(com.google.android.things.userdriver.input.InputDriver))`(`[InputDriver](https://developer.android.com/reference/com/google/android/things/userdriver/input/InputDriver)` driver) ` Unregister an input driver.                                  |
| ` void`                                                                                                                       | ` `[unregisterLowpanDriver](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#unregisterLowpanDriver(com.google.android.things.userdriver.lowpan.LowpanDriver))`(`[LowpanDriver](https://developer.android.com/reference/com/google/android/things/userdriver/lowpan/LowpanDriver)` driver) ` Unregister a LoWPAN Driver                            |
| ` void`                                                                                                                       | ` `[unregisterSensor](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#unregisterSensor(com.google.android.things.userdriver.sensor.UserSensor))`(`[UserSensor](https://developer.android.com/reference/com/google/android/things/userdriver/sensor/UserSensor)` sensor) ` Unregister a sensor driver.                                             |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager#)From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                                                                                                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                                                                                                                                                                                                                                           | | ` void`                                                                        | ` `[finalize](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 `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                                                                                                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                                                                                                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                                                                                                                                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                                                                                                                                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                                                                                                                                                                                                                                            | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long, int))`(long millis, int nanos) ` Causes the current thread to wait until another thread invokes the[notify()](https://developer.android.com/reference/java/lang/Object.html#notify())method or the[notifyAll()](https://developer.android.com/reference/java/lang/Object.html#notifyAll())method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed. | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long))`(long millis) ` Causes the current thread to wait until either another thread invokes the[notify()](https://developer.android.com/reference/java/lang/Object.html#notify())method or the[notifyAll()](https://developer.android.com/reference/java/lang/Object.html#notifyAll())method for this object, or a specified amount of time has elapsed.                                                                 | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait())`() ` Causes the current thread to wait until another thread invokes the[notify()](https://developer.android.com/reference/java/lang/Object.html#notify())method or the[notifyAll()](https://developer.android.com/reference/java/lang/Object.html#notifyAll())method for this object.                                                                                                                                  | ||

## Public methods

### getInstance

```
UserDriverManager getInstance ()
```

Get a UserDriverManager object.

<br />

|                                                                                                  Returns                                                                                                  ||
|---------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| [UserDriverManager](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager) | An instance of a UserDriverManager. If one doesn't exist, it will be created. <br /> |

### registerGnssDriver

```
void registerGnssDriver (GnssDriver driver)
```

Register a GNSS driver with the user driver manager. There can only be one GNSS sensor per device. If the device has a built-in GNSS sensor, this method will fail.

<br />

|                     Parameters                     ||
|----------|------------------------------------------|
| `driver` | `GnssDriver`: Driver to register. <br /> |

### registerInputDriver

```
void registerInputDriver (InputDriver driver)
```

Register a input driver with the user driver manager.

<br />

|                     Parameters                      ||
|----------|-------------------------------------------|
| `driver` | `InputDriver`: Driver to register. <br /> |

### registerLowpanDriver

```
void registerLowpanDriver (LowpanDriver driver)
```

Register a LoWPAN Driver and start the network interface.

<br />

|                      Parameters                      ||
|----------|--------------------------------------------|
| `driver` | `LowpanDriver`: Driver to register. <br /> |

### registerSensor

```
void registerSensor (UserSensor sensor)
```

Register a user sensor with the user driver manager.

<br />

|                     Parameters                     ||
|----------|------------------------------------------|
| `sensor` | `UserSensor`: Sensor to register. <br /> |

### unregisterGnssDriver

```
void unregisterGnssDriver ()
```

Unregister the GNSS driver. Only user-defined GNSS drivers can be unregistered.

<br />

### unregisterInputDriver

```
void unregisterInputDriver (InputDriver driver)
```

Unregister an input driver.

<br />

|                     Parameters                      ||
|----------|-------------------------------------------|
| `driver` | `InputDriver`: Driver to register. <br /> |

### unregisterLowpanDriver

```
void unregisterLowpanDriver (LowpanDriver driver)
```

Unregister a LoWPAN Driver

<br />

|                       Parameters                       ||
|----------|----------------------------------------------|
| `driver` | `LowpanDriver`: Driver to unregister. <br /> |

### unregisterSensor

```
void unregisterSensor (UserSensor sensor)
```

Unregister a sensor driver.

<br />

|                      Parameters                      ||
|----------|--------------------------------------------|
| `sensor` | `UserSensor`: Sensor to unregister. <br /> |

-

  ## Classes

  - [UserDriverManager](https://developer.android.com/reference/com/google/android/things/userdriver/UserDriverManager)