We have a program that we install on the phones and loan the phones to users for a certain period. We would like the phones to be used solely for running our application (no phone calls, no games, no nothing). The phones will be rooted.
So the things we need:
- Run in full screen, nothing else will be visible
- Home button and other device buttons won’t work
- Our app will run automatically on startup
It doesn’t have to be “hacker proof”, but should be sufficient to prevent average user messing with the device.
Is this possible? I have done similar things on Symbian & Windows Mobile but I don’t have much experience with this stuff on Android. How may this be achieved?
UPDATE 2015: If you don’t mind limiting your app to single phone vendor, Samsung has introduced the KNOX SDK that lets you achieve kiosk mode and much more easily without rooting the phone. See details at: https://seap.samsung.com/developer/sdk/knox-standard-android
Yes it is possible but you can not control the behaviour of
Home keyandend call key.for full screen add
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"to activity tag in manifest file.To disable incoming call you need to listen phone calls:
Note: While stopping service don’t foget to remove the listener and add these permissions to your manifest file:
and disconnect the call programmatically:
Note: Add this file to disconnect the call:
http://dl.dropbox.com/u/31740476/ITelephony.aidl
To disable keys you need to override:
On Home key press the Home screen will come, so to overcome this you need to implement a service and there you need to implement a infinite thread to relaunch your app like this:
EDIT
You would need to add the following permission to be able to end calls:
And you can use the following AIDL file: