iPhone is the best choice
There seems to be lots of people complaining its not made for their model or brand of phone. The problem is that as much as you may not like it the iPhone is easy to develop for and has an instantly accessible user base with minimal support costs.
Java apps
1) You've managed to find some place to download your app. If you've downloaded it straight from your phone then you might be good to go - although I remember having a phone that didn't want apps downloaded directly to it and so you wither had to tweak some security settings or use the horribly written phone sync app provided by the phone manufacturer....
....assuming you've got this installed? Find the disc that came with the phone and/or toddle off to the manufacturer’s site. Play hunt the download for the version of software that supports your specific phone model. Does it support your version of Windows, Linux, OSX, whatever? Let's hope so!
....if there's no app then the phone might present itself as a drive in Windows and you can simply drag the app files into /usr/applications/installable/java/1.2.4/my.apps.phone/runtime/
2) OK you've installed your app. What screen res is your app going to be designed to run at? My experience in the past with Java apps has been that the app has been written with phone model 123a in mind but I have phone model 123. My screen res is lower and now the damn app doesn't fit on my screen with half the buttons off the bottom and side. Cue lots of confused and disappointed customers complaining to Tesco that their app is rubbish because it doesn't support their vintage 1995 PAYG phone.
3) Sorry the camera on your vintage phone is only a 0.5 MP. You need at least a 2 MP camera to scan the barcode. More confused and annoyed people.
Android Apps
1) Things seem to be much better, getting apps onto your phone is significantly easier.
2) However, there's still a problem with the large profusion of different hardware that makes development difficult and expensive. It also increases support costs. I think this is a major barrier for many companies and developers. Which configuration of hardware do you support? Will it be the right choice if manufacturers change the type of hardware they offer in the future?
iPhone apps
1) The massive advantage off developing for the iPhone is that the kit is standard. An app written for the iPhone will run on everyone's iPhone (and possibly iPad & iTouch too). There's no multitude of options to support.
2) The app store is easy to use. It's available on your phone. You search it and the app is downloaded and installed to your phone. Any updates to the app can be pushed out via the app store.
3) There's a large base of users ready to use your app. Apple customers seem to be more loyal and so if they're going to stick with their brand of phone they're likely to stick with your app for shopping at your store (or potentially buy more apps from you if you're a games developer etc).
4) Like it or not the iPhone has a 'coolness', desirability, whatever about it. Being brutally honest as good as the Android (and other) phones are they just don't seem to capture the public's imagination as much as iPhones do. Other brands and companies want to be seen to be in the crowd of 'cool' companies. The majority of the population (not computer or technology geeks) will have heard of an iPhone, seen one, or know someone with one. As for Android I imagine the number will be much smaller as the brand awareness, image, and marketing is much less.