I’m taking the plunge and learning some Android programming. My question relates more to the devices. Do all devices have the same inputs: ie accelerometers, touch screen, etc. Or is there a bunch of different types and you have to figure out what you have at runtime?
I have worked with Android sensors: acceleration, orientation, also with gps and “task manager” I would say that everything I made and tested on emulator, worked fine on all the phones I tested after.
As far as I know, all of them have touch input and accelerometer .
Not all devices have a hard keyboard (that’s a fact.).
There are some devices that dont even have the trackball ( I figured that out when a user complained about jumping with trackball) .
Only devices with 2.0 on support multitouch .
Shortly said, it’s a mess !
I would stick with the touch + accelerometer .
Great, thanks guys.
Yeah… Handling input across the ecosystem can be a big issue if your game is not simple (just touch/accelerometer). Almost all Android devices should support touch and accelerometer, but even that conceivably isn’t the case for all devices, but I’d bet 98%+.
With TyphonRT the middleware I’m putting out for desktop & android I put in a great deal of time to normalize and provide a powerful input control system that also provides virtual overlays for devices without a keyboard that can be displayed as necessary.
An example is that a Motorola Droid has a keyboard, but when the keyboard is closed TyphonRT can display virtual overlays for both movement & rotation (3D FPS navigation). The Nexus One just shows the movement virtual controller all the time due to no keyboard and the trackball is used for rotation. TyphonRT provides an XML configuration system that can load custom configurations based on device name and family. I’ll be creating a device configuration database that can generate the XML as needed for a given type of app.
Basically a lot of a work can be put into creating a scalable and reasonably comprehensive input configuration system. All of this is in the core distribution of TyphonRT which will be released in June via GPLv3, but also dual licensed with a favorable fee for indie developers. I will be doing a closed beta soon and several free licensees to ~50 initial developers, so send me a PM if you are interested in getting in on this.
Officially, you should not make no assumptions about input methods on devices. But if you require certain devices, then make sure to define that requirement in the AndroidManifest.xml.