Abra la cámara en la tableta Nexus 7

He desarrollado una aplicación de cámara en android. Captura imágenes usando una vista de superficie. A continuación se muestra el código que utilicé para abrir la cámara

try { // attempt to get a Front Camera instance c = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT); } catch (Exception e) { // TODO Auto-generated catch block System.out .println("fail to connect to Front Camera"); } if (c == null) { try { // attempt to get a Back Camera instance c = Camera.open(1); } catch (Exception e) { // TODO: handle exception System.out .println("fail to connect to Camera with id = 1"); } } if (c == null) { try { // attempt to get a Back Camera instance c = Camera.open(0); } catch (Exception e) { // TODO: handle exception System.out .println("fail to connect to Camera with id = 0"); } } if (c == null) { try { // attempt to get a Back Camera instance c = Camera.open(); } catch (Exception e) { // TODO: handle exception System.out .println("fail to connect to Back Camera"); return c; } 

Donde c es un objeto de cámara.

Funciona muy bien en otros teléfonos excepto Nexus 7 Tablet. En Nexus 7, el código lanza excepción en todos los casos, excepto el último, es decir, c = Camera.open(); , Pero el objeto c es null .

Aquí está el seguimiento de la pila

 11-22 12:36:57.559 W/System.err(7621): java.lang.NullPointerException 11-22 12:36:57.559 W/System.err(7621): at com.MyPackage.OpenCamera.getFrontCameraInstance(OpenCamera.java:238) 11-22 12:36:57.559 W/System.err(7621): at com.MyPackage.OpenCamera.onCreate(OpenCamera.java:123) 11-22 12:36:57.559 W/System.err(7621): at android.app.Activity.performCreate(Activity.java:5104) 11-22 12:36:57.559 W/System.err(7621): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread.access$600(ActivityThread.java:141) 11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread $H.handleMessage(ActivityThread.java:1234) 11-22 12:36:57.559 W/System.err(7621): at android.os.Handler.dispatchMessage(Handler.java:99) 11-22 12:36:57.559 W/System.err(7621): at android.os.Looper.loop (Looper.java:137) 11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread.main (ActivityThread.java:5039) 11-22 12:36:57.559 W/System.err(7621): at java.lang.reflect.Method.invokeNative(Native Method) 11-22 12:36:57.559 W/System.err(7621): at java.lang.reflect.Method.invoke (Method.java:511) 11-22 12:36:57.559 W/System.err(7621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:793) 11-22 12:36:57.559 W/System.err(7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 11-22 12:36:57.559 W/System.err(7621): at dalvik.system.NativeStart.main (Native Method) 11-22 12:36:57.559 I/System.out(7621): Error in setting Parameter 11-22 12:36:57.609 I/ActivityManager(480): Displayed 11-22 12:36:57.679 W/System.err(7621): at android.location.Geocoder.getFromLocation(Geocoder.java:136) 11-22 12:36:57.679 W/System.err(7621): at com.MyPackage.OpenCamera. $MyTimmer$1.run(OpenCamera.java:336) 11-22 12:36:57.679 W/System.err(7621): java.lang.NullPointerException 11-22 12:36:57.679 W/System.err(7621): at com.MyPackage.OpenCamera. $MyTimmer$1.run(OpenCamera.java:344) 

Así que no puedo usarlo para capturar la imagen. ¿¿¿Alguna solución???

Gracias…

2 Solutions collect form web for “Abra la cámara en la tableta Nexus 7”

Cuando se utiliza el siguiente código en el Nexus 7: int cameraId = CameraInfo.CAMERA_FACING_FRONT; Sin embargo, la cameraId es 1, como usted ha visto, usando 1 como el parámetro resulta en un error. He encontrado que el uso de 0 en lugar de 1 funciona, pero la cámara debe ser liberado después de cada uso así que seguir adelante y llamar Camera.open (cameraId) .release (); Me doy cuenta de que esto es feo pero parece resolver el problema con el Nexus 7.

  int cameraId = -1; boolean errorFound = false; boolean hasFeatCamera = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA); if (hasFeatCamera) { try{ cameraId = CameraInfo.CAMERA_FACING_BACK; Camera.open(cameraId).release(); }catch(Exception e){ Camera.open(0).release(); } } else if(CameraInfo.CAMERA_FACING_FRONT>-1){ try{ cameraId = CameraInfo.CAMERA_FACING_FRONT; Camera.open(cameraId).release(); }catch(Exception e){ errorFound = true; } if(errorFound){ try{ Camera.open(0).release(); // Put in for Nexus 7 as CameraInfo.CAMERA_FACING_FRONT= 1 but it only loads if the id is actually 0 cameraId = 0; }catch(Exception e){ cameraId = -1; } } } if(cameraId<0){ Toast.makeText(this, "No camera found.", Toast.LENGTH_LONG).show(); } 

Un poco tarde, pero tal vez ayuda a alguien. Tuve el mismo problema y no podía obtener la cámara Nexus 7 para trabajar con cualquier índice suministrado a getCamera (idx).

Instalé una cámara "Kamera Nexus 7" desde la tienda. No tenía ninguna aplicación de cámara después de un reset / actualización. Esta aplicación funcionó y después de usarlo una vez, podría obtener la cámara utilizando Camera.getCamera (0);

Así que tal vez hay un "requisito de desbloqueo" adicional que no está cubierto en las respuestas aquí? (No funcionaron para mí, antes de instalar la aplicación)

  • ¿Cómo obtener el número IMEI de Google Nexus 7 TAB en android?
  • Android Studio no reconocerá Nexus 7 como dispositivo
  • Asus Nexus 7 no reconocido por las herramientas de desarrollo de Android vía adb
  • Android 4.2.2 adb no puede encontrar dispositivos
  • Reproduce los informes de la tienda "Tu dispositivo no es compatible con esta versión", pero se instala a través de Adb muy bien en Nexus7
  • Cómo conectar nexus 7 a ADT en vmware Windows invitado
  • 'Elf.h' no encontró error al compilar el núcleo de Android para Nexus 7 en Mac OS X
  • Cree un punto de acceso con el Nexus 7
  • Nexus 7 no se muestra bajo 'dispositivos adb' con Windows 8 PC
  • Android android.provider.MediaStore.ACTION_VIDEO_CAPTURE devuelve null onActivityResult con nexus 7
  • ActionBar con pestañas de navegación cambia de altura con la orientación de la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.