I want to check if the method Camera.Parameters.getHorizontalViewAngle() exists on the device (it’s only available from API 8 and my min SDK API is 7). I tried to use “reflection”, as explained here, but it catches an error saying the number of arguments is wrong:
java.lang.IllegalArgumentException: wrong number of arguments
Anybody could help?
Camera camera;
camera = Camera.open();
Parameters params = camera.getParameters();
Method m = Camera.Parameters.class.getMethod("getHorizontalViewAngle", new Class[] {} );
float hVA = 0;
try {
m.invoke(params, hVA);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
m.invoke(params, hVA);should be
m.invoke(params, null);Camera.Parameters.getHorizontalViewAngle()doesn’t take any arguments and the above line has the argument hVA. If you’re looking for the return variable dohVA = m.invoke(params, null);