Android - Problema con barcode

 
Vista:

Problema con barcode

Publicado por Guillermo Cepeda (2 intervenciones) el 31/12/2014 20:28:26
Tengo una aplicación que llama a barcode para leer códigos QR. Los QR que lee están fabricados para dicha aplicación y llevan una parte del mensaje encriptada para dicha aplicación. Funciona todo sin problemas.

Depurando el comportamiento de la aplicación, la pongo a leer un QR cualquiera para lanzar un mensaje de error en caso de que se usara para leer QR que no son propios. Esto no funciona, la aplicación se interrumpe. Me pongo a intentar sacar dónde da el error y no hay manera. Justo al volver de Barcode finaliza la aplicación sin entrar en ninguna de las funciones que gestionan esto.

Lo curioso es que, si primero leo un QR de lo que sí se reconocen como propio y después leo uno cualquiera, sí que se detecta desde dentro de la aplicación y da el correspondiente mensaje de error fabricado por mí y sigue funcionando sin problema. Pero, como digo, si fuerzo este error sin haber leído previamente uno reconocible, nunca me entra en la función que gestiona esto a la vuelta de la lectura del QR sino que se interrumpe directamente.

¿A qué puede deberse este comportamiento?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con barcode

Publicado por Alan Saracho (4 intervenciones) el 02/01/2015 23:27:36
Buenos dias, seria mejor si proporcionas el codigo para poder revisarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con barcode

Publicado por Guillermo Cepeda (2 intervenciones) el 03/01/2015 23:29:17
Desde aquí llamo al lector BarCode...

1
2
3
4
5
6
7
8
9
10
11
12
13
//Funcion del botón "Leer QR" que pone en marcha el lector QR BarCode
private void configureButtonReader() {
	final Button buttonReader = (Button)findViewById(R.id.Ejercicio);
	buttonReader.setOnClickListener(new View.OnClickListener() {
		@Override
		public void onClick(View view) {
			new IntentIntegrator(ActPrincipal.this).initiateScan();
		//Activada para pruebas ==> DESACTIVAR la siguiente linea
		//updateUITextViews("En la tienda compré 2 litros de leche a 3,5 € cada uno y una lata de atún a 1 €. ¿Cuánto me sobra de un billete de 10€? @&1;L|U#8|z|(éJBU", "QR_CODE");
		bComprobar.setEnabled(true);
		}
	});
}

Y con esta función recojo la lectura de BarCode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//Recoge la lectura de BarCode y llama a la funcion que la procesa (handleResult)
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
	//super.onActivityResult(requestCode, resultCode, intent);
	Toast.makeText(getApplicationContext(), "Entra en onActivityResult: ", Toast.LENGTH_SHORT).show();
 
	if (requestCode == 49374){
		if (resultCode == Activity.RESULT_OK){
			final IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
			if(scanResult==null){
				finish();
			}
			handleResult(scanResult);
			if (EnunciadoLeido){
				bComprobar.setEnabled(true);
			}
		}
	}
	if (requestCode == 10){
		String result = intent.getStringExtra("result");
		if (result.endsWith("OK")){
			titEnunciado.setText("Lee el código QR para comenzar.");
			enunciado.setText("");
			respuesta.setText("");
			bComprobar.setEnabled(false);
		}else{
			respuesta.setText("");
		}
	}
 
}

Como ves, tengo puesto un chivato (toast) que me muestra "Entra en onActivityResult". Como ya expliqué, si lo primero que leo es un QR con el formato esperado (enunciado de un problema), entra en esta función. Pero si leo primero algo que no sea esto (por ejemplo, un QR con el texto Feliz Navidad, simplemente), no entra en la función.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar