Hmmm... no... there is not a "general" method. What you're asking is actually a whole bunch of questions. I'll try to give you some pointers.
This article describes a general technique for detecting the presence of an API, and using it safely if it exists on the handset.
Some APIs use "system properties" for determining information about the runtime environment. For example:
Code:
String maxBlueToothDevices = System.getProperty("bluetooth.connected.devices.max");
Some APIs have their own methods for querying capability. Such as '135:
Code:
String[] types = Manager.getSupportedContentTypes(null);
In some cases, there will be no means of determining the capability. I think, for example, you cannot tell if the device has GPS hardware or not (though, Tiger69 would know better).
There are also many things you cannot control. So far as I know, you cannot (on most devices, at least) control which camera will be used for image capture.
You would do well to get a copy of the Nokia Developer's Library, which contains the JavaDocs for the APIs, as well as implementation details. Look especially at the "system properties" sections in the "runtime environment notes" for each API.
The Forum Nokia Wiki is also an essential source of information.
Be aware that some information will be available only on some devices. Nokia provide some additional means (such as system properties) for determining informtion. Other manufacturers may make similar provision.
Graham.