The right term is "power harvesting". Unfortunately rf-collection is very inefficient. Buttons - just forget it since You'd have to make Your keys harder than usuall and let's face it - browsing the web equals very low keyboard usage. The most efficient way theese days is thermal harvesting - it can power a watch for example - but it requires carrying device "on skin" with top not covered - to achieve maximum temperature difference. The easiest solution is solar panel on the back. Unfortunately it's quite rare in production devices - I don't know why (I use solar powered FM radio and it works ok).