Nokia Communicator 9500 and J2ME
I am currently working on a project which allows me to get down and dirty with J2ME on multiple devices. My main focus has been on the Nokia Communicator 9500 which has a flip-up application screen and a full keyboard.
I ran into a huge issue using the new JSR 75 - PIM and file system access optional packages for the J2ME platform. The Nokia Communicator 9500 has both the CLDC 1.1 with MIDP 2.0 profile and the CDC with personal profile support. When I looked at the specifications for the phone, it gives the following J2ME options which are supported:
CLDC 1.1 Wireless Messaging API (JSR-120) Mobile Media API (JSR-135) CDC (JSR-36) Foundation Profile (JSR-46) Personal Profile (JSR-62) FileConnection and PIM API (JSR-75) Bluetooth API (JSR-82 No OBEX) MIDP 2.0 Nokia UI API
After looking at this list, I was quite sure that the phone must support JSR 75 optional package on it‘s CLDC 1.1 with MIDP 2.0 profile. This is not entirely correct. I found out in this article that the JSR 75 support was only available in the CDC/Personal profile runtime. This is somewhat correct, but even this is not the extent of the situation. Here are three different scenarios which further extract what the actual state of JSR 75 support is on this phone:
- Untrusted (without signed MIDlet) - JSR 75 API calls work but with annoying questions each time you access the file system or PIM categories. If you are doing much of this type of access (using the JSR 75 API normally) then this would make your application mostly unusable.
- Trusted with MIDlet-Permissions set for JSR 75 access - The application will not even install on the phone.
- Trusted without asking JSR 75 permissions - The application installs on the phone, but once you actually make a JSR 75 API call it breaks.
Now, if the application did not even have access to the JSR 75 API in untrusted installations I would not have “much” of a problem, but that is not the case as you can see above. Instead, they allow the API access from CLDC mode which makes the application quite annoying with all of the questions prompted to the user.
My reason for posting this is not neccessarily for the Nokia Communicator J2ME developers only, but to the J2ME community as a whole. There are many issues in this arena with the same type of conditional behavior. We need to let the device manufacturers know about these problems so that they may be remedied in the near future. The promise of the J2ME environment is substantial and therefore it needs a strong feedback loop from the developers and vendors to make it work.
