Captura de imagen de la cámara no logra regresar en Galaxy Tab Edición limitada
Tengo problemas con una edición limitada de Galaxy Tab (Google I / O) cuando abro la cámara con un intento.
Este es mi código:
- Android: flujo maestro / detallado (panel dual) con 1 actividad
- Android: ¿Utilizar una tableta para emular otros dispositivos?
- API de impresión de Android en la pestaña Galaxy
- Emular la pestaña Samsung Galaxy
- Android: ¿Hay alguna manera de acelerar canvas.drawBitmap?
Intención imageCaptureIntent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE); ImageCaptureIntent.putExtra (MediaStore.EXTRA_OUTPUT, Uri.fromFile (nuevo Archivo (mSavedFilePath))); StartActivityForResult (imageCaptureIntent, REQUEST_IMAGE_CAPTURE);
En un Motorola Xoom este código está funcionando bien. Pero en Galaxy Tab 10.1, nunca recibo la respuesta de la aplicación de cámara.
No tengo un rastro de la pila porque no tengo un error.
Alguien tiene alguna idea?
- Diferentes controladores para los objetivos de teléfono y tableta
- Android No se puede eliminar el color en la parte superior e inferior
- Cómo cambiar el tamaño de la pantalla física de Android desde el terminal / shell
- Actualizaciones de aplicaciones para Android
- HTML Mobile: obliga al teclado virtual a ocultar
- Montaje de un Samsung Galaxy Tab 2 7.0 con MTP en Linux
- Navegador Android y dibujo en un lienzo HTML5 ... ¿Alguien ha hecho esto?
- ¿Qué es el rango para android: largeScreens?
No necesita el permiso de la cámara al iniciar una intención con la aplicación de cámara. Sin embargo, este es un proceso altamente fragmentado en la plataforma android. He tenido un montón de problemas con él. Básicamente si usted comprueba el archivo adicional que usted envió a la aplicación de la cámara usted notará que su tamaño es 0 bytes cuando el resultado vuelve. Este error existe en una gran cantidad de dispositivos android y te es una solución para la fijación de la mayor parte de ella y que es cuando esto falla (esto significa que no hay salida parcelable extra devuelto y si es entonces el archivo extra no se crea o con longitud 0 Entonces usted necesita para obtener el Uri de la intención como: intention.getData (), lo que devolverá un uri al archivo que se forma básicamente de la misma manera que el Extra Uri de salida para que pueda después utilizar el mismo enfoque para obtener la imagen .
Se dará cuenta de que la imagen se almacena dentro del proveedor Media.Images y en el directorio de la cámara y ofc el intento.getData () Uri apuntando allí.
Espero que esto ayude. No se olvide de votar: D.
Estaba muy frustrado por esto también. Sin embargo, encontré una (algo lamentable) solución.
Debo decir, de inmediato, que no estaba usando el intento ACTION_IMAGE_CAPTURE estándar. Como quería tener la imagen de la cámara en una ventana, usé mi propio diseño y usé lo siguiente como una plantilla:
Cómo programar la cámara de Google Android para tomar fotos
Tocar la pantalla llama a la función Camera.PictureCallback onPictureTaken (byte [] imageData, cámara c) , que es donde tomo el byte [] que contiene la imagen. Tengo una variable global "byte [] MainApplication.snapshotBytes" que es asignado por el imageData de esta función.
Ahora que los datos se han guardado globalmente y están disponibles para la actividad de llamada, ¿cómo se debe terminar la actividad actual de tal manera que se notifica la actividad de llamada? Bueno, hay un número de maneras, pero me di cuenta temprano que presionando el botón de nuevo todavía llama OnActivityResult (…) . Por lo tanto, hice lo siguiente:
if (imageData != null) { MainApp.snapshotBytes = imageData; setResult(RESULT_OK); onBackPressed(); }
La actividad llamante era ahora responsable de tres cosas más.
1: Establece MainApp.snapshotBytes = null antes de iniciar la actividad de la cámara.
2: Cuando se llamó OnActivityResult (…) , comprobó primero el * resultCode == RESULT_OK *, y luego hizo uso de los datos de imagen que se almacenaron en el MainApp.snapshotBytes global.
3: Por último, estableció el MainApp.snapshotBytes = null de nuevo para que la memoria podría ser recuperado por GC.
Voy a ser el primero en admitir que es un kludge, pero funciona y es compatible con o sin el error Camera-null-Intent.
¡Espero que esto ayude!
Suena como un error …
Pero por si acaso, ¿Ha incluido en su AndroidManifest.xml lo siguiente ???
<uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
También puedes intentar usar el Intent sin extras.
Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(imageCaptureIntent, REQUEST_IMAGE_CAPTURE);
El bitmap resultante será más pequeño, pero al menos puedes probarlo para ver si funciona. Espero que ayude.
Saludos,
Suena como que podría estar relacionado con este http://kevinpotgieter.wordpress.com/2011/03/30/null-intent-passed-back-on-samsung-galaxy-tab/
Hay otra pregunta abierta que puede dar información adicional
- ActiveMQ y otras implementaciones de JMS de FOSS para Android
- ¿WebView NO abre el reproductor de vídeo por defecto de android?