2011-05-18 18 views
5

sé que podemos acceder a la cámara de frente en dispositivos pre-pan de jengibre Galaxy S estableciendo el parámetro "camera-id" Cámara:Samsung Galaxy S: ¿Cómo determinar la presencia de la cámara frontal?

Camera cam = Camera.open(); 
Camera.Parameters params = cam.getParameters(); 
params.set("camera-id", 2); 

El problema es que no todos los dispositivos Galaxy tienen una cámara de frente. Estos dispositivos tienen el parámetro "camera-id", Y me permite configurarlo en 2 (frontal). Por lo que he encontrado, la única forma de determinar la presencia/ausencia de FFC es ver si startPreview() arroja una excepción cuando "camera-id" es 2. Esto es una especie de solución incómoda, especialmente cuando intento admitir múltiples dispositivos.

¿Alguien ha encontrado una manera de consultar el número de cámaras en un Galaxy S 2.1 o 2.2, o al menos determinar la presencia de una cámara frontal?

Gracias!

Respuesta

2

Si necesita una cámara de frente se puede poner esto en sus AndroidManifest.xml así:

<uses-feature android:name="android.hardware.camera.front" android:required="true" /> 

Si no lo requiere y desea comprobar en tiempo de ejecución puede utilizar el PackageManager como esto:

PackageManager.hasSystemFeature(PackageManager. FEATURE_CAMERA_FRONT); 
+0

Gracias por su respuesta, pero esta característica sólo está disponible en Gingerbread (2.3) y necesito que esto funcione en 2.1/2.2 dispositivos, utilizando la API-interruptor de la cámara Samsung documentado no-verdad. – mrb

+0

La parte AndroidManifest seguirá funcionando. Aparte de eso, realmente no hay forma de hacerlo. El núcleo de Android no admitía cámaras frontales hasta 2.3, por lo que la única forma de hacerlo en versiones anteriores sería usar extensiones específicas del dispositivo. – CaseyB

Cuestiones relacionadas