Skip to content

Most visited

Recently visited



public class DeviceAdminService
extends Service

   ↳ android.content.Context
     ↳ android.content.ContextWrapper

Base class for a service that device owner/profile owners can optionally have.

The system searches for it with an intent filter with the ACTION_DEVICE_ADMIN_SERVICE action, and tries to keep a bound connection as long as the hosting user is running, so that the device/profile owner is always considered to be in the foreground. This is useful to receive implicit broadcasts that can no longer be received by manifest receivers by apps targeting Android version O. Device/profile owners can use a runtime-registered broadcast receiver instead, and have a DeviceAdminService so that the process is always running.

Device/profile owners can use setComponentEnabledSetting(ComponentName, int, int) to disable/enable its own service. For example, when a device/profile owner no longer needs to be in the foreground, it can (and should) disable its service.

The service must be protected with the permission BIND_DEVICE_ADMIN. Otherwise the system would ignore it.

When the owner process crashes, the service will be re-bound automatically after a back-off.

Note the process may still be killed if the system is under heavy memory pressure, in which case the process will be re-started later.


Inherited constants

From class
From class android.content.Context
From interface android.content.ComponentCallbacks2

Public constructors


Public methods

final IBinder onBind(Intent intent)

Return the communication channel to the service.

Inherited methods

From class
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface android.content.ComponentCallbacks

Public constructors


added in API level 26
DeviceAdminService ()

Public methods


added in API level 26
IBinder onBind (Intent intent)

Return the communication channel to the service. May return null if clients can not bind to the service. The returned IBinder is usually for a complex interface that has been described using aidl.

Note that unlike other application components, calls on to the IBinder interface returned here may not happen on the main thread of the process. More information about the main thread can be found in Processes and Threads.

intent Intent: The Intent that was used to bind to this service, as given to Context.bindService. Note that any extras that were included with the Intent at that point will not be seen here.

IBinder Return an IBinder through which clients can call on to the service.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)