Well, There are plenty of apps for true smartphones out there, but those of us stuck with simpler phones are left behind... hehe.

This app was conceived to be used on my Nokia C3-00, the idea is to use it's buttons and keyboard to control my PC (mostly XBMC). I've seen other very complete and good apps that allow to see the desktop, files etc, but none of those was suitable to use the phone as a remote control for a media center. This simple program just sends UDP messages as soon as each key is pressed (no need to enter text in a textbox and then hit enter).

The app makes no judgement as to what the key or button is for. The idea is to feed the messages to EventGhost (www.eventghost.com) and there each user can decide what to do with it.

The connectivity is done via UDP on a local wifi. If enough interest arises we could add bluetooth to this etc.

How to use:

1) Install the jad/jar on your phone.
2) Run and enter the PCs IP address and port (Broadcaster plugin in EG)
3) Press any keys and see the events.

There are three types of events:

ACTION.<nn> these are the standard cell phone action codes. Depending on your phone these may be the directional keys etc
COMMAND.<xxx> these are defined canvas commands. OK and BACK are defined with top priority so these would normally be assigned to the first available soft buttons. On my C3 these go to the center selection button and soft-right.
The soft-left button then displays a menu with all of the other commands (type ITEM) so these can be selected and used too.
CHAR&&<nn> this is the default character event. For all keys that are not standard cell phone keys, the C3 simply returns the ascii code of the letter pressed, processing in the phone the shift and alt modifiers. This is a single event and the character code is sent as the "payload" of the event. This is so that you can define a single action in EG that works on all (In my case it is emulating the same key code in the PC as received from the phone). The EG action for the "CHAR" event is a single python command as follows:

      eg.plugins.Window.SendKeys(chr(int(eg.event.payload)), False)

which can be read "send the key whose code came in the payload"

The other events can be mapped one by one into specific actions.