Estoy desarrollando una aplicación que utilizaAndroid compatibilidad de código hacia atrás
android.hardware.Camera.parameters.getSupportedPictureSizes()
Esto sólo está disponible a partir de la versión 8 SDK y me gustaría para ser compatible con SDK 4, por lo que he hecho esto:
si (Build.VERSION.SDK_INT> = 8) {...}
Pero en el emulador, que las costuras que se trata de comprobar la referencia a esta función, y se produce un error:
02-02 11: 20: 10.930: ERROR/dalvikvm (1841): No se pudo encontrar método android.hardware.Camera $ Parameters.getSupportedPictureSizes, referenciado desde com.test.demo.CameraCustom.takeAPicture método
Cualquier idea acerca de cómo resolver este problema de compatibilidad hacia atrás?
He intentado utilizar inkocation con este fragmento de código dentro de surfaceChanged. Obviamente, el código funciona directamente sin invocación:
try{
windowmanager_defaultdisplay_Rotation = getWindowManager().getDefaultDisplay().getClass().getMethod("getRotation");
Log.v(MainMenu.TAG, "getRotation exist");
}catch(Exception e){
Log.v(MainMenu.TAG, "getRotation dont exist");
}
try{
windowmanager_defaultdisplay_Rotation.invoke(null, null);
Log.v(MainMenu.TAG, "getRotation invoking ok, rotation ");
}catch(Exception e){
Log.v(MainMenu.TAG, "exception invoking getRotation "+e.toString());
}
consigo "getRotation existe", pero luego "excepción invocando getRotation java.lang.NullPointerException
Cualquier idea
Sí, creo que debería hacer algo como esto: http://developer.android.com/resources/articles/backward-compatibility.html, gracias! – zegnus
Ok, el problema es que no puedo usar otra clase porque quiero usar getRotation() de getWindowManager(). GetDefaultDisplay(). GetRotation(), solo disponible en SDK> = 8. Así que he intentado usar invocación, pero arroja una excepción de puntero nulo, el código se muestra en mi mensaje original. – zegnus