Ensure that your app's minSdkVersion is set to at least API level 21.
Add the dependencies for the latest version of the AMAPI SDK to your
application. You can find the version of the latest available library, and
how to add it to your application, in the AMAPI SDK's release notes
page.
Add queries element
If your app targets SDK 30 or later, then queries element is needed in the
AndroidManifest.xml to specify that it will interact with ADP.
Some features require creating a
NotificationReceiverService, and some features
make optional use of it. To use it, define a class extending
NotificationReceiverService, add it as a service to your
AndroidManifest.xml, and make sure it is exported.
importcom.google.android.managementapi.notification.NotificationReceiverService;...publicfinalclassMyAppNotificationReceiverServiceextendsNotificationReceiverService{@OverrideprotectedvoidsetupInjection(){// This method can be optionally used to inject dependencies at the// beginning of the service lifecycle.}}
Typically the ComponentName of your class which implements
NotificationReceiverService needs to be passed to us through a suitable API.
The details vary depending on the feature in question, and each feature which
needs this documents it.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-24 UTC."],[],[],null,["# Integrate with the AMAPI SDK\n\nThe [Android Management API (AMAPI) SDK](https://maven.google.com/web/index.html#com.google.android.libraries.enterprise.amapi) enables specific apps to\ncommunicate directly with Android Device Policy (ADP). It includes support for:\n\n- [Local execution of Commands](/android/management/sdk-local-commands).\n- [Migrate devices managed with a custom DPC to AMAPI](/android/management/dpc-migration)\n- [Device Trust from Android Enterprise](/android/management/device-trust-api)\n- New device enrollment flow that also supports adding managed google accounts.\n\nThe following steps must be taken to integrate the AMAPI SDK with your\napplication:\n\n1. [Add the AMAPI SDK library](/android/management/sdk-release-notes#declare_dependencies).\n2. [Add the queries element](#add_queries), if target SDK \\\u003e= 30.\n\n| **Note:** If you are developing an extension app, you will also need to provision the device with an [extensibility policy](/android/management/sdk-local-commands#policy).\n\nPrerequisites\n-------------\n\n- Ensure that your app's `minSdkVersion` is set to at least API level 21.\n- Add the dependencies for the latest version of the AMAPI SDK to your application. You can find the version of the latest available library, and how to add it to your application, in the [AMAPI SDK's release notes](/android/management/sdk-release-notes) page.\n\n### Add queries element\n\nIf your app targets SDK 30 or later, then queries element is needed in the\n`AndroidManifest.xml` to specify that it will interact with ADP. \n\n \u003cqueries\u003e\n \u003cpackage android:name=\"com.google.android.apps.work.clouddpc\" /\u003e\n \u003c/queries\u003e\n\nSee [Package visibility filtering on Android](https://developer.android.com/training/package-visibility) for more information.\n\n### Implement a NotificationReceiverService\n\nSome features require creating a\n[`NotificationReceiverService`](/android/management/reference/amapi/com/google/android/managementapi/notification/NotificationReceiverService), and some features\nmake optional use of it. To use it, define a class extending\n`NotificationReceiverService`, add it as a `service` to your\n`AndroidManifest.xml`, and make sure it is exported. \n\n\n import com.google.android.managementapi.notification.NotificationReceiverService;\n\n ...\n\n public final class MyAppNotificationReceiverService extends NotificationReceiverService {\n\n @Override\n protected void setupInjection() {\n // This method can be optionally used to inject dependencies at the\n // beginning of the service lifecycle.\n }\n }\n\nIn your `AndroidManifest.xml`, add \n\n \u003cservice\n android:name = \".MyAppNotificationReceiverService\"\n android:exported = \"true\" /\u003e\n\nTypically the `ComponentName` of your class which implements\n`NotificationReceiverService` needs to be passed to us through a suitable API.\nThe details vary depending on the feature in question, and each feature which\nneeds this documents it."]]