如何定位多个API级别?

Kev*_*ker 2 android android-camera android-api-levels

我希望在两个独立的API级别上使用Android的Camera.open()方法.首先是API级别7,它是2.1和更高,第二个是2.3.3和2.3.4,它们是API级别9.

在API级别7和8上,Camera.open方法不接受任何参数.在API级别9及更高级别,摄像机采用整数参数,为其提供要使用的cameraId.

如何在同一代码中定位两个API级别?与此伪代码类似的东西:

Camera lCamera;
if (Platform.APILevel < 7){
  lCamera.open();
}else { 
  lCamera.open(0);
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*iuk 7

我们经常做反射检测.就像是:

    public Camera getCamera() {
        try {
            Method method = Camera.class.getMethod("open", Integer.TYPE);
            return (Camera) method.invoke(null, 0);
        } catch (Exception e) {
                // Yes, I really want to handle all exceptions here!!!!
                Log.d(TAG,"Error when trying to invoke Camera.open(int), reverting to open()",e);
                return Camera.open();
        }
    }
Run Code Online (Sandbox Code Playgroud)