Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News How to Make Sure an App Works with Android for Work

How to Make Sure an App Works with Android for Work

Lire ce contenu en français

Google has announced Android for Work, a program making it possible for users to take their Android devices and use in an enterprise environment.

On Android Lollipop, enterprise administrators can create a managed profile (a.k.a work profile) that is then deployed to their employees’ smartphones and remotely administered. This profile co-exists in parallel with the user’s personal profile and the user does not have to switch between profiles. The IT department decides what applications are to be pushed to the managed device, what are the profile settings and device capabilities available on that profile. For example, using the camera with the managed profile could be turned off. Also, IT admins can remove the apps and the entire profile at any time.

The managed profile can be installed only on encrypted devices. The settings and the data are encrypted and kept separately. Users have full privacy and control of their personal data, while administrators control the enterprise data. The work apps and their notifications are visually marked by a badge. Administrators can install any app from the Play Store but it is recommended to test them before pushing them to devices.

For devices with Android Ice Cream Sandwich, Jelly Bean or KitKat, enterprises can make use of the Android for Work app which provides secured services –email, calendar, contacts, browsing, etc. – through a limited number of approved apps that are managed by the IT department.

Free apps are available for enterprises to be deployed on managed profiles as they are. For paid apps, developers will need to choose during the publishing process if they want to sell their apps in bulk to enterprises.

If developers have followed the best practices in developing Android apps by the letter, their apps should work with Android for Work without any problem. If they didn’t, there may be some issues to address. They are related to the limitations attached to managed profiles and the profile settings that administrators can enforce.

Developers need to be aware that Android Intentions do not cross profiles unless the admins specifically allow them. A managed profile may contain a limited number of apps, and, as a result, it is possible that there is no app to handle an intent on the managed profile, resulting in missing functionality and even app crash if this is not cared for properly. To avoid that, developers have to check if there is a handler for their intent by calling Intent.resolveActivity(), failing cleanly and possibly informing the user. They also, do not have to assume that all device features are available because the admins can disable some of them in the managed profile.

Another issue stems from the fact that profiles have separate storage areas. That means file URIs can’t be passed across profiles. It doesn’t work if a managed app fires an intent and passes a file URI that is handled by an app from the user’s personal profile. A file URI can be passed though if it is encapsulated into a Content URI using FileProvider.getUriForFile().

To make sure an app works with managed profiles it is recommended to test it using the BasicManagedProfile (download zip file) provided by Google. For detailed advice on creating enterprise apps, we recommend the site Building Apps for Work.

Rate this Article