Added in API level 26

DeviceAdminService


open class DeviceAdminService : Service
kotlin.Any
   ↳ android.content.Context
   ↳ android.content.ContextWrapper
   ↳ android.app.Service
   ↳ android.app.admin.DeviceAdminService

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

The system searches for it with an intent filter with the DevicePolicyManager.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 android.os.Build.VERSION_CODES#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 android.content.pm.PackageManager#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 android.Manifest.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.

Starting from Android android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE, non-DPC admins can also optionally implement this service using the details mentioned above to ensure they receive policy update broadcasts (see PolicyUpdateReceiver).

Summary

Inherited constants
Public constructors

Public methods
IBinder?
onBind(intent: Intent!)

Inherited functions

Public constructors

DeviceAdminService

Added in API level 26
DeviceAdminService()

Public methods

onBind

Added in API level 26
fun onBind(intent: Intent!): IBinder?
Parameters
intent Intent!: The Intent that was used to bind to this service, as given to android.content.Context#bindService. Note that any extras that were included with the Intent at that point will not be seen here.
Return
IBinder? Return an IBinder through which clients can call on to the service.