Android includes APIs to manage devices that are dedicated to a specific purpose. This developer's guide introduces these APIs. If you're an enterprise mobility management (EMM) developer or solution integrator, read this guide to get started.

## Where are dedicated devices used?

*Dedicated devices*(formerly called corporate-owned single-use, or COSU) are fully managed devices that serve a specific purpose. Android provides APIs that can help you create devices that cater to employee- and customer-specific needs:

- **Employee-facing:**Inventory management, field service management, transport and logistics
- **Customer-facing:**Kiosks, digital signage, hospitality check-in

## Dedicated device features

Android includes APIs to help people using dedicated devices focus on their tasks. You typically call these APIs from a custom home app that you develop. Your custom home app can use some, or all, of the following APIs:

- Run the system in an immersive, kiosk-like fashion where devices are locked to an allowlisted set of apps using[lock task mode](https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode).
- Share a device between multiple users (such as shift workers or public-kiosk users) by[managing ephemeral and secondary users](https://developer.android.com/work/dpc/dedicated-devices/multiple-users).
- Avoid devices downloading the same app again for each temporary user by[caching app packages](https://developer.android.com/work/dpc/dedicated-devices/cookbook#cache-apps).
- Suspend over-the-air (OTA) system updates over critical periods by[freezing the operating system version](https://developer.android.com/work/dpc/system-updates#freeze-periods).

To call these APIs, apps need to be the admin of a fully managed device---explained in the following section.

## Managed devices

Because dedicated devices might be left unattended or used in critical tasks, you need to secure the device. To prevent misuse, dedicated devices are*fully managed* and owned by an[admin component](https://developer.android.com/reference/android/app/admin/DeviceAdminReceiver)(the admin component typically manages the users too). Fully managed deployments are for company-owned devices that are used exclusively for work purposes. To learn more about Android device management, read the Android Enterprise[Overview](https://developers.google.com/android/work/overview)guide.

Depending on your solution's needs and your business goals, you can manage the device in one of the following ways:

- [Develop your own device policy controller (DPC)](https://developer.android.com/work/dpc/build-dpc), combining it with a[custom home app](https://developer.android.com/work/dpc/dedicated-devices#features).
- Use the[Android Management API](https://developers.google.com/android/management/)to manage the device and any custom apps.
- Use a[third-party EMM solution](https://androidenterprisepartners.withgoogle.com/emm/)that supports lock task mode and other dedicated device features.

## Testing

If you're planning to support a third-party EMM, develop an end-to-end testing plan using the EMM's solution.

We also provide the following resources, which you can use to create your own development or test environment:

- [Test DPC](https://play.google.com/store/search?q=testdpc)app on Google Play
- [Dedicated device source code](https://github.com/googlesamples/android-testdpc/tree/master/src/main/java/com/afwsamples/testdpc/cosu)(Test DPC) on GitHub

While you're still developing, you can[set your app as the admin](https://developer.android.com/work/dpc/dedicated-devices/cookbook#dev-setup)of a fully managed device using the Android Debug Bridge (ADB).

## Provision dedicated devices

When you've finished developing your solution, you're ready to*provision*Android devices, or set up the devices for management. To provision a device, complete the following steps:

1. Factory reset the device.
2. Enroll the device. We recommend[using a QR code](https://developers.google.com/android/work/prov-devices#qr_code_method)that contains a provisioning config for device. An IT admin can then scan the code to provision the device.

   If you cannot use a QR code, you can enroll devices through[other methods](https://developers.google.com/android/work/overview#device_and_work_profile_provisioning), such as NFC bumping or by entering an identifier.

## Documentation

## Additional resources

To learn more about getting started with dedicated devices, read the following documents:

- [Android Enterprise overview](https://developers.google.com/android/work/overview)that introduces device management.
- [Build a device policy controller](https://developer.android.com/work/dpc/build-dpc)explains how to develop a DPC.
- [Dedicated devices cookbook](https://developer.android.com/work/dpc/dedicated-devices/cookbook)gives examples for features typical of dedicated devices.