I'm trying to develop an application for an android tablet.
This tablet will be shown to the public and they can touch it.
I want to block all means to close the app except for a button/preference menu that requires a password.
But after some research I am not sure if this is possible. Long press on power button still works, home button too and return button. Will this work? if so how?
At first you need to add your application as home from your manifest
after add flag
Disable device lock
Disable home Long click
After run you need to set your app to home application !!!
you can find all the answers in already asked questions in stackoverflow
Home Button
Return Button
Power Button
Simply you can't do this , you can't stop user to pressing
Home Button
you can block Back press event .
You can stop user from pressing home Button using
onAttachedToWindow()
but this may not work from android 3.2I have finally found a way to do this
No doc about this
getWindow().getDecorView().setSystemUiVisibility(8);
But the 8 is a hidden flag to completly disable system UI with this your app is permanly in full screen(Be carefull if you use this keep a way to close app) The 8 flag is completly undocumented so i can't tell you since with version this work i dev for 4.0 and 4.1 it work for both. Dunno for 3.0 but haven't any device to try it.
And don't forget android.permission.EXPAND_STATUS_BAR in your manifest
this is not perfect because if you use some alert dialogue the systemUi become visible but if you don't use any you can't quit Long press power make a powerpopup who make system ui visible too
But you can kill it fast wit the following method
If you do this you can't quit your app anymore(or i have forgot a way to close it?) so keep in mind before to make something like SureLock(app avaible on playstore), 3touch in 2 s launch an activity who ask a pass to quit it
Hope this can help and is complete
And a last question is still unanwsered Can we custom an alert view to call setSystemUiVisibility(8); because if the battery make an alert or if you think you really need an alert, this will show system UI while you alert is visible
I'm pretty sure this can't be done without root access to the device, in order to avoid a troll application to take control of your Android Device if you happen to run it.