I had the same problem, but since I normally keep it on vibrate, I would either turn it to silent, or to the lowest volume when i bumped it, and I was constantly missing calls and texts.
I have been using the free app, Buzzlock. It is very simple, keeps the phone on vibrate while buzzlock is on. I can bump those buttons all i want and it stays on vibrate. It is simple to turn on and off. Another plus is that it only affects the ringer, not the media volume.
Its a good fix if vibrate is what you want.