¿Cómo detectar que no hay cámara disponible en el dispositivo Android? y también si el dispositivo tiene cámara frontal cómo usarlo?¿Cómo detectar que no hay cámara disponible en el dispositivo Android? y también si el dispositivo tiene cámara frontal cómo usarlo?
Respuesta
CameraInfo cameraInfo = new CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) {
}
}
Utilice el administrador de paquetes para verificar si el dispositivo es compatible con Intent. En este caso Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE
);
public static boolean isIntentAvailable(Context context, String action) {
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
Comentario del usuario sin privilegios de comentario ([perfil] (http://stackoverflow.com/users/1005899/cfg)): 'MediaStore.ACTION_IMAGE_CAPTURE' no funciona, debe usar' android.media.action.IMAGE_CAPTURE' . – Anne
La forma más rápida que he encontrado para comprobar si existe un (backfacing) es la cámara para comprobar si Camera.open() devuelve un valor nulo.
Camera cam = Camera.open();
if(null == cam){
//no camera exists
}
Esto debería estar disponible para las versiones anteriores de Android también.
Lo que sugeriría es similar a la respuesta del doc_180, pero debería ser capaz de detectar tanto la cámara frontal como la trasera incluso para Froyo, aunque si no me equivoco, Froyo nunca admitió las cámaras frontales, así que siempre obtienes una respuesta falsa para frontCam
en Froyo.
PackageManager pm = getPackageManager();
boolean frontCam, rearCam;
//Must have a targetSdk >= 9 defined in the AndroidManifest
frontCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT);
rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
EDIT: Acabo de dar cuenta de que esta es una pregunta muy, muy vieja. Oh, bueno, espero que ayude a alguien en el futuro.
Gracias por esto :) – Malachi
Tenga en cuenta que puede compilar su aplicación con Android 2.3 o superior y aún así hacerlo compatible con Android 2.2. Recuerde que las constantes como 'PackageManager.FEATURE_CAMERA_FRONT' en realidad están codificadas por el compilador, por lo que no fallarán en el tiempo de ejecución en Android 2.2 o versiones posteriores. – Cristian
Gracias. Me ayudó =] –
Prueba de esto, esto funcionó para mí en una Moto RAZR HD:
public static Camera open (int cameraId)
Ejemplo de uso:
mCamera = Camera.open(1);
¿cómo diablos responde eso a la pregunta? – andr
se puede utilizar este método estático si lo que desea saber cuántas cámaras hay son: Camera.getNumberOfCameras(); (api 9)
/** Check if this device has a camera */
private boolean checkCameraHardware(Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
// this device has a camera
return true;
} else {
// no camera on this device
return false;
}
}
- 1. iPhone - Detectando si el dispositivo tiene una cámara frontal
- 2. iPhone etc: ¿cómo saber si el dispositivo tiene una cámara?
- 3. Android cámara frontal
- 4. Cámara: Dispositivo de Cruz emite
- 5. Android, cámara frontal y trasera Orientación, paisaje
- 6. ¿Cuál es el dispositivo de la cámara frontalUniqueID?
- 7. Capturar cámara frontal - ¿Phonegap?
- 8. Compruebe si el tiempo frontal está habilitado en el dispositivo
- 9. Dispositivo de cámara de control de C#
- 10. Evite voltear la cámara frontal
- 11. Problema de ruta de cámara específica de dispositivo Android
- 12. Establecer la cámara frontal en el iPhone SDK
- 13. Cámara frontal de Android que toma fotos invertidas
- 14. ¿Cómo puedo probar si el dispositivo IOS tiene capacidades telefónicas?
- 15. UIStatusBarStyleBlackTranslucent no está disponible en este dispositivo
- 16. ¿Cómo obtener el tamaño del sensor de la cámara en un dispositivo Android?
- 17. Detectar si el dispositivo se está cargando
- 18. ¿Puede el iPhone4 grabar desde la cámara frontal y la cámara trasera al mismo tiempo?
- 19. Cómo detectar golpes en el micrófono del dispositivo Android
- 20. ¿Cómo determinar si un dispositivo Android tiene una pantalla táctil?
- 21. ¿Cómo detectar si el dispositivo posee una tarjeta sd?
- 22. Transmisión en vivo usando el dispositivo Android
- 23. Android - cámara como detector de movimiento
- 24. Cómo saber si el dispositivo está durmiendo
- 25. Android API para detectar nuevos medios desde la cámara y el micrófono incorporados
- 26. ¿por qué eclipse no puede detectar el dispositivo Android?
- 27. ¿Cuál es el procedimiento para detectar si un dispositivo Android tiene capacidad de envío de SMS?
- 28. cámara no funciona en Android 2.2
- 29. El dispositivo Android no aparece en DDMS
- 30. cómo medir HeartBeat usando un dispositivo Android
Hola, gracias por su respuesta, pero estoy usando Android 2.2 no encuentro la clase CameraInfo. ¿Qué hacer ahora? – sureshmenon13196
@suresh - ¿Puede pedirle al usuario que le indique a la aplicación si hay una cámara frontal en el dispositivo o no? –