My company is looking at selling an Android device with an application on that will do a certain task as a product to replace an embedded device.
However we need to some how lock the device to only have access to our application which we will develop and not be able to access the normal Android OS interface.
I would like the following:
Is this possible to do, and how would one go about doing this?
Lollipop (5.0) supports the concept of screen pinning, which is what I think you're after.
Android 5.0 introduces a new screen pinning API that lets you temporarily restrict users from leaving your task or being interrupted by notifications. This could be used, for example, if you are developing an education app to support high stakes assessment requirements on Android, or a single-purpose or kiosk application. Once your app activates screen pinning, users cannot see notifications, access other apps, or return to the home screen, until your app exits the mode.
There are two ways to activate screen pinning:
Manually: Users can enable screen pinning in Settings > Security > Screen Pinning, and select the tasks they want to pin by touching the green pin icon in the recents screen.
Programmatically: To activate screen pinning programmatically, call startLockTask() from your app. If the requesting app is not a device owner, the user is prompted for confirmation. A device owner app can call the setLockTaskPackages() method to enable apps to be pinnable without the user confirmation step.
https://developer.android.com/about/versions/android-5.0.html