Spanish Camara no se habilita luego de los permisos

GabrielQ

Member
Licensed User
Buen dia ! tengo el siguiente codigo y no logro que, luego de instalada por primera vez la aplicacion e ingresar que le otorgo el permiso de usar la camara, quede esta habilitada, solo veo el panel. Si salgo y vuelvo a entrar, ahi la camara trabaja perfectamente.
Estuve leyendo el orden de ejecucion de los eventos etc, pero no logre dar con la solucion...GRACIAS !

Sub Activity_Resume

auxRuntimePermissions.CheckAndRequest(auxRuntimePermissions.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)

auxCamaraFoto.Initialize(pnlCamaraFoto, "CamaraFoto")

End Sub
 

josejad

Expert
Licensed User
Longtime User
No estoy en el ordenador ahora, has copiado algún ejemplo? No veo que tras pedir el permiso actives la cámara sí result es true, porque si es false, también intentas abrir la cámara.

Sí no, prueba a subir tu proyecto.

Saludos
 

GabrielQ

Member
Licensed User
Hola Jose, sisi, perdon que no copie el otro evento... ahi van ambos...no se si subi bien en formato codigo. gracias!
[CODIGO]

Sub Activity_Resume

auxRuntimePermissions.CheckAndRequest(auxRuntimePermissions.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)

auxCamaraFoto.Initialize(pnlCamaraFoto, "CamaraFoto")

End Sub

Sub CamaraFoto_Ready (Success As Boolean)

If Success Then

auxCamaraFoto.PictureSize(320,320)
auxCamaraFoto_OriPortrait()

auxCamaraFoto.StartPreview
Else
ToastMessageShow("No se puede abrir la camara", True)
End If

End Sub

[/CODIGO]
 

josejad

Expert
Licensed User
Longtime User
Hola:

Me refería a ponerlo aquí

B4X:
Sub Activity_Resume

auxRuntimePermissions.CheckAndRequest(auxRuntimePermissions.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)

if result then
  auxCamaraFoto.Initialize(pnlCamaraFoto, "CamaraFoto")
else
  Log("no hay permiso")
Ene if
End Sub

En vez de [código] usa Code para que sea más claro
 
Last edited:

GabrielQ

Member
Licensed User
Gracias, era CODE :D ... lo agregue por las dudas, pero nada...trate tambien de ejecutar CamaraFoto_Ready forzandolo desp del Initialize, pero me da error, como que aun no estaba instanciada la camara... como soy nuevo, busque antes el orden de ejecucion de los eventos etc... pero no puedo encontrar como setear el Preview...
 

josejad

Expert
Licensed User
Longtime User
Lo siento, no me entero de si lo has solucionado o no y estás hablando de otro error nuevo.

Sí está solucionado, marca el hilo como solucionado y abre otro hilo para el nuevo error.

Sí no está solucionado, pega el error que te da, o sube tu proyecto...

Saludos
 

GabrielQ

Member
Licensed User
Perdon, por explicar demas di a confusion, NO FUNCIONA AUN. Despues de que me pide el OK para el permiso para usar la camara, la misma no esta disponible, NO muestra ningun error...
Si salgo de la aplicacion y la vuelvo a ejecutar, ya no me pide el OK de los permisos, y la camara funciona correctamente.
Subi el proyecto lo mas recortado posible. muchas gracias desde ya!
 

Attachments

  • relev.zip
    48.2 KB · Views: 243

josejad

Expert
Licensed User
Longtime User
Hola GabrielQ:

Pues cuando ejecuto tu app, tras aceptar el permiso de la cámara, me da el siguiente error:

B4X:
Registo conectado a:  samsung SM-J530F
--------- beginning of main
Copying updated assets files (13)
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
sending message to waiting queue (activity_permissionresult)
running waiting messages (1)
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
sending message to waiting queue (activity_permissionresult)
sending message to waiting queue (activity_permissionresult)
running waiting messages (2)
** Activity (main) Resume **
Error occurred on line: 345 (Main)
java.lang.RuntimeException: setParameters failed
    at android.hardware.Camera.native_setParameters(Native Method)
    at android.hardware.Camera.setParameters(Camera.java:1945)
    at xvs.ACL.ACL.PictureSize(ACL.java:572)
    at com.Relevamiento.main._camarafoto_ready(main.java:979)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
    at anywheresoftware.b4a.BA$2.run(BA.java:370)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:7000)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

Que te da en la línea
B4X:
Sub CamaraFoto_Ready (Success As Boolean)
   
    If Success Then
        auxCamaraFoto.PictureSize(320,320)  '**** LÍNEA 345, AQUÍ SE PRODUCE EL ERROR
        auxCamaraFoto.OriPortrait()
       
        auxCamaraFoto.StartPreview
      Else
        ToastMessageShow("No se puede abrir la camara", True)
    End If
   
End Sub

He comentado las dos líneas antes de StartPreview y así funciona bien. No he usado esta librería, así que no sé cómo se inicializará con esos parámetros.
De todas formas, la librería es bastante antigua creo, deberías plantearte pasar a CameraEx o Camera2.

saludos,
 
Top