We have a Midlet Suite with one main midlet and a couple of “helper” midlets that the user will never use, but are timer initiated. Our concern is that in emulation ALL the midlets show up on the menu screen. How can we have multiple midlets in a single Midlet Suite without having them all display? Out target device is the 6600.
The MIDlets displayed on the menu are the ones that appear in the JAD file under the MIDlet-n (n being a number of course) properties. Edit your JAD not to include all the MIDlets and they shouldn't appear on the menu.
There is still an issue for deployment though. I created a jar with multiple midlets and then manual edited the JAD references to those midlets I didn't want displayed but rather activated by a timer.
The Midlets didn't show up, but when the timer went off, I got an error message from Nokia's emulator saying that it couldn't find the midlets it was supposed to run (presumably because they weren't listed in the JAD file since it worked before). So the question is:
1. Is this an emulator only issue?
2. If not, how can you deploy multiple midlets in a single suite without them all showing up on the menu?
The exact error message was: Error registering time, ClassNotFoundException: No MIDlet--<n> registration.
I've never tried any of this, I'm just saying how it "should" work according to the specs.
But a solution to the problems you describe above would be to implement all the functionality in one MIDlet, but have the "timer-based" tasks not appear on your UI. The timer will always load the one MIDlet and in the startApp() you can check why the app is being loaded and either load up the UI if the user initiated the loading, or perform your other tasks if a timer initiated the loading.
That's my two cents, and I hope they help.