Skip to main content

key mapping issue on htc ozone (Win Mobile 6.1)

4 replies [Last post]
anton1
Offline
Joined: 2009-11-26

Hi everybody!

I'm having a key mapping issue with Davy's distribution for Win Mobile 6 on HTC Ozone phone (http://www.htc.com/us/product/HTCOzone/specification.html) -
inside the LCDUI textboxes the keys that are used for dialing (qwe/sdf/zxcv) only produce digits and never letters in QWERTY input mode in other modes they act as if they were digits on a non-QWERTY keyboard.

Is it possible to check/change the key mapping table in the binary distribution?

BTW, Sun's JavaFX mobile stack that also includes phoneMe midlet manager doesn't exhibit this problem.

Thanks,

Anton.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
davyp
Offline
Joined: 2007-01-03

Hi Anton,

I don't have an HTC Ozone, not even a Windows Mobile phone with a physical
keyboard or numpad. So it is a bit hard for me to reproduce the problem. According
to the specs your device runs the Classic edition of Windows Mobile and not the
Professional one.

I tried the Windows Mobile 6 Classic edition with the MS device emulator and used
the microemulator-demo test midlet from the microemu project.

http://www.microemu.org/microemu-examples/microemu-demo/microemu-demo.jad
http://www.microemu.org/microemu-examples/microemu-demo/microemu-demo.jar

If I set the input mode to "Abc" or "abc", I can enter text with the numpad without any
problems using the numpad of the emulator. Pressing the same numberic key allows
me to choose the character that I want. What do you get with the "Abc" mode on
your device with this midlet?

The phoneME Midlet manager of Sun's JavaFX mobile might work and I think it is
based on the same code base of the phoneME project. It even contains support for
certain JSRs on WinCE that I don't support, but the sources of the stack are not
available (closed source :-() so it does not help me much.

Davy

anton1
Offline
Joined: 2009-11-26

Davy,

Thanks for the prompt reply! I will test the microemulator-demo midlet and report the results.

Currently in my app and in the PhoneME Midlet Manager:

The ABC mode is restricted to digit buttons that need to be pressed repeatedly to get a letter which is a nonsense on the full keyboard :)

The QWERTY mode on the other hand never produces the qwe/sdf/zxcv characters, all other charcters work just fine.

Predictive mode works exactly as ABC - only digits can be pressed.

Virtual mode behaves exactly like QWERTY. Virtual keyboard doesn't appear.

123 mode works as expected - only digit buttons can be used.

Come to think of it - the Ozone has an FN button that switches those letters to digits when pressed (i.e 'FN'+'q' = '1'). I won't be surprised if the status of this key needs to be accounted for in the key mapping table.

MS device emulator indeed works fine, it's probably the HTC keyboard design that produces this behavior.

I think I need to test the key codes with and without FN button.

Anton.

davyp
Offline
Joined: 2007-01-03

Anton,

The virtual keyboard indeed does not appear, because smart phones with Windows
Mobile Classic don't have a touch screen. Hence the virtual keyboard would not work
anyway.

Let us know what you find out about that function key. The microemulator midlet
has a keyboard test tool that prints the characters and their keycode. I am particularly
interested in the codes of that special key.

Cheers,
Davy

anton1
Offline
Joined: 2009-11-26

Hi Davy,
I’ve got some new information on how the keyboard works on the HTC Ozone.

Firstly, the micro-emulator demo doesn’t catch qwe/sdf/zxcv characters neither in the textfields nor as key presses on the Canvas (KeyCanvas test).

So I went ahead and downloaded a sample key tracking app from this MSDN blog
http://windowsteamblog.com/blogs/windowsphone/pages/twisted-pixels-4-a-b...

and found that the FN key acts similarly to what Microsoft describes in the reference docs (http://msdn.microsoft.com/en-us/library/bb416286.aspx)

In my case the key code for the FN is 0xEC which is an OEM reserved key code (VK_OEM_PA2 ?).

Let’s take the ‘q’ button as an example –
If ‘q’ is pressed and released the following messages are sent:
WM_KEYDOWN: VK_1 (VK_T1)
WM_CHAR:1
WM_KEYUP:VK_1(VK_T1)

And this actually has to be printed as ‘q’ in the QWERTY mode!

If ‘FN’ +’q’ is pressed:
WM_KEYDOWN: 0xEC
WM_KEYDOWN: VK_1 (VK_T1)
WM_CHAR:1
WM_KEYUP:VK_1(VK_T1)
WM_KEYUP: 0xEC

And this should produce ‘1’ in the QWERTY mode.

Does this make sense to you? :)
What bugs me is that I don’t get VK_Q message sent in either case.

I guess the keyboard driver handles all this nonsense for native textboxes but when you go down to windows messages that’s what you are going to end up with.

Pretty much the digits act as the default keys on the keyboard but in the text input mode they should be treated like letters and the ‘FN’ works as a SHIFT modifier that turns them back to digits.

I’ve also found two more problematic buttons:
‘*’ generates VK_F8 code and ‘#’ – VK_F9 - no printable characters in phoneme.

Do you think it’s possible to get this mapped somehow in PhoneME? Looks like HTC uses the same keyboard layout on all their full-keyboard modes.
Thanks,

Anton.