Is there a way in Android to detect if the software (a.k.a. \"soft\") keyboard is visible on screen?
You can use the callback result of showSoftInput() and hideSoftInput() to check for the status of the keyboard. Full details and example code at
http://www.ninthavenue.com.au/how-to-check-if-the-software-keyboard-is-shown-in-android