Communicating with the Ivanti client app using intents for legacy configuration handling

The Ivanti server passes the app-specific configuration to the Ivanti client app (Mobile@Work when using Connected Cloud or Core and Go when using Ivanti Neurons for MDM). The Ivanti client app in turn passes the configuration to your app. The communication between the Ivanti client app and your app uses intents (android.content.Intent objects). The Ivanti client app and your app each have services to handle the Intent objects. The Intent objects are implicit intents, so Intent filters and action values in the Intent object tell the system which services handle the intent.

On Android 5.x or newer devices, you must use explicit intents. To use an explicit intent, use PackageManager.resolveService(intent, 0); and then call startService().

The Intent objects passed between the client app and your app are:

Table 11.   Intent objects passed between Ivanti client and app

Intent object

Description

Intent object with the action:

"com.mobileiron.REQUEST_CONFIG"

When your app makes a request for the current configuration, it starts a service in the Ivanti client app. Specifically, the app calls startService(), passing an Intent object with this action.

Intent object with the action:

"com.mobileiron.HANDLE_CONFIG"

When the Ivanti client app has a configuration update for your app, it starts a service in your app. Specifically, the client app calls startService(), passing an Intent object with this action.

Intent object in extended data named:

"configAppliedIntent"

in the Intent object with the action:

"com.mobileiron.HANDLE_CONFIG".

When your app successfully handles the key-value pairs sent in a configuration update, it notifies the Ivanti client app of the success. Specifically, your app calls startService(), passing this Intent object.

Intent object in extended data named:

"configErrorIntent"

in the Intent object with the action:

"com.mobileiron.HANDLE_CONFIG".

When your app fails to successfully handle the key-value pairs sent in a configuration update, it notifies the Ivanti client app of the failure. Specifically, your app calls startService(), passing this Intent object.