A hardware hack, literally.
Step 1: Discovering the Failure
I had recently dragged an old Uniden BC245 out of retirement, I now generally use SDR or frequency specific radios(ie ADSB, AIS), and attached it to an Arduino clone via a homemade RS232(MAX232) shield.
I had the software running nicely and was just thinking about adding some extra features when a column of keys seemed to stop working. This defect didn't interfere with the Arduino side as I only needed the "E" key to keep working, the "E" when pressed for 2+ seconds puts the scanner into remote computer mode, this allows commands to be sent to it via a remote computer and disables the scanner keyboard.
After a week or two of not using the scanner I was about to start programming again, powered everything up and pressed the "E" key, nothing. The scanner was scanning but no key worked on the keyboard.
Step 2: Fixing the Fault
Upon opening the scanner the battery wires fell off, the battery was the second pack of rechargables used in this scanner, the 1st pack had leaked slightly but at the time there was no sign of any other damage. A quick look at the keyboard PCB showed a discoloured region and and showed that the board was a multi-layer board, I was going either have to find a replacement keyboard or re-program the onboard computer to be able to get the scanner working again, buying a new handheld scanner($250+) is way down on my list of things to do, in fact I will probably replace it eventually with a RPi2 with a LCD touch screen SDR radio. After a little longer I decided I had nothing to lose by simply cutting the damaged section of keyboard away. Either it would start working or I would still have a non-functioning scanner. I decided to cut the last row of keys off to try and limit the spread of the corrosion, at least until I had a RPi2 scanner :)
This row had the LCD lamp button, delay, lockout and DATA keys all of which are of no real interest to me as I can achieve the same results with the Arduino sketch if they were needed. The Arduino clone uses an I2C LCD and a RS232 interface so there were still quite a number of Digital inputs that could be used for switches and/or rotary encoders.So I finally hacksawed then filed smooth the bottom row of keys off, not too even but doesn't matter, and assembled the scanner sans case , applied power and the "E" key works again.
Step 3: Finally
Sometimes you don't need all the keys, and keep a watch on rechargable battery packs.
Also included is the Arduino sketch, reasonably simple, and it has the Uniden BC245 command set attached to the end.
Sorry , the sketch is well commented and I will offer no assistance, it may or may not work for you, you should be able to struggle thru with some Google searches, it's what I do.
Maybe an ESP8266 with an Android app could replace the entire arduino,LCD,rs232 section, especially as there is a little more room in the scanner, but that will have to wait.