Android Beacon Library: ¿uso correcto de BluetoothMedic?

Tengo algunas preguntas sobre el uso de Bluetooth Medic, según las siguientes observaciones.

Porque Bluetooth se detiene en uno de mis dispositivos, he estado mirando BluetoothMedic para ver si puede ayudar. He mirado los mensajes de depuración y el código fuente. Obtengo resultados algo diferentes dependiendo de si uso enablePeriodicTests () o ejecuto individualmente runScanTest () y runTransmitterTest ().

Con enablePeriodicTests (), BluetoothTestJob.onStartJob () ejecuta las pruebas de escaneo y transmisor cada 15 minutos, aparentemente bien. Si mi baliza está transmitiendo, obtengo "Prueba de escaneo exitosa" y luego "Prueba de escaneo completada" de la prueba de escaneo, y si no aparece "Prueba de escaneo con tiempo de espera excedido" y luego "Prueba de escaneo completa". Después de eso, se ejecuta la prueba del transmisor y obtengo "Prueba del transmisor exitosa" y luego "Prueba del transmisor completa" en todos los casos.

Sin embargo, obtengo un comportamiento diferente cuando agrego botones que ejecutan las llamadas runScanTest () y runTransmitterTest (). En ambos casos, el código ingresa los bucles while () esperando un resultado de prueba no nulo y agota el tiempo de espera después de 5 segundos. Como los resultados de la prueba son nulos, las llamadas devuelven verdadero (para la prueba de escaneo) y falso (para la prueba del transmisor).

En el caso de la prueba de escaneo, la devolución de llamada onScanResult () nunca se llama si mi baliza no está transmitiendo, pero si la baliza está transmitiendo, se llama de 10 a 20 veces (veo muchos mensajes de "Prueba de escaneo exitosa") pero solo DESPUÉS de que runScanTest () vuelve.

En el caso de la prueba del transmisor, la devolución de llamada onStartSuccess () se activa una vez y veo el mensaje "La prueba del transmisor se realizó con éxito", pero solo DESPUÉS de que regresa runTransmitterTest ().

Behaviour es igual para dos dispositivos (Android 7 y 8).

ería bueno tener más documentación sobre estas pruebas y cómo usarlas.

n primer lugar, ¿qué hacen estas pruebas y qué errores pueden encontrar?

Segundo: ¿cómo deberían usarse? Parece que runScanTest () y runTransmitterTest () no se pueden llamar simplemente: ¿necesitan sus propios hilos o algo así?

Finalmente, ¿son seguros de usar mientras el código de rango y monitoreo está en acción, o interfieren?

Respuestas a la pregunta(1)

Su respuesta a la pregunta