Sto sviluppando un'applicazione che utilizzaAndroid compatibilità del codice a ritroso
android.hardware.Camera.parameters.getSupportedPictureSizes()
Questo è disponibile solo da SDK versione 8 e vorrei per essere compatibile con SDK 4, quindi ho fatto questo:
se (Build.VERSION.SDK_INT> = 8) {...}
Ma sull'emulatore, cuciture che cerca di controllare il riferimento a questa funzione, e non riesce:
02-02 11: 20: 10.930: ERRORE/dalvikvm (1841): Impossibile trovare metodo android.hardware.Camera $ Parameters.getSupportedPictureSizes, fa riferimento dal metodo com.test.demo.CameraCustom.takeAPicture
alcuna idea su come risolvere questo problema di compatibilità a ritroso?
Ho provato a utilizzare l'inkocation con questo codice all'interno di surfaceChanged. Ovviamente, il codice funziona direttamente senza invocazione:
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());
}
ottengo "getRotation esiste", ma poi "eccezione che invoca getRotation java.lang.NullPointerException
Qualsiasi idea
Sì, penso che dovrei fare qualcosa di simile: http://developer.android.com/resources/articles/backward-compatibility.html, grazie! – zegnus
Ok, il problema è che non posso usare un'altra classe perché voglio usare getRotation() da getWindowManager(). GetDefaultDisplay(). GetRotation(), disponibile solo in SDK> = 8. Quindi ho provato ad usare invocazione, ma genera un'eccezione di puntatore nullo, il codice è mostrato nel mio messaggio originale. – zegnus