05-19-2009 04:25 PM
Hi, I'm developing a blackberry application that will run on both Bold, Storm, and Curve. My goal is to have a single installable cod file which can be
deployed to any of these phones. A portability issue has come up. It seems that I cannot refer to VirtualKeyboard in any way shape or form unless
the app is being loaded on the Storm. On any other phone, I get the following message:
Class net.rim.device.api.ui.VirtualKeyboard not found
This even happens when referencing the VirtualKeyboard.isSupported() static method which seems very counter intuititive since that's the only way
that I've seen to detect whether the keyboard is available.
Any help would be appreciated.
05-20-2009 08:07 AM - edited 05-20-2009 08:08 AM
As I understand you're a newbie, in this case take a look at this link.
Regarding your questions.
Every device has a device operating system (device software).
This operating system has a version number, can be checked on device via Options - About.
This version along with RIM OS version number also indicates RIM API version number.
I.e if RIM OS version is 22.214.171.124 then RIM API version supported by this device is RIM API 126.96.36.199 (or older versions).
JDE version also indicates RIM API version that is using to compose/compile the applications (cod files).
Devices with keyboards work with device OS versions up to 4.6
BB Storm device os version is 4.7
So, if you compile your application with RIM API 4.7 (for Storm) it cannot run on devices which support older RIM API.
Just because older api just does not know about new classes introduced in new api (for storm).
If you want to have one cod file for the most possible device models - then use JDE version 4.2
Another (recommended) option is making different cod files for different models.
05-20-2009 08:12 AM
Also please note that applications compiled with JDE older than 4.7 run on Storm devices in compatibility mode.
In this mode device translates touch events to keyboard and trackball events and sends it to your application.
There is a chance that it may cause some issues with your application user interface.
05-20-2009 12:54 PM
Thanks for the reply. Looking now, I see that Storm is the only phone running 4.7. For some reason, I assumed the 8900 Curve was running 4.7 as well. I guess the only alternative for the moment is to deploy using separate cod files.