Tengo una aplicación donde estoy controlando programáticamente el emparejamiento y el desacoplamiento Bluetooth. Puedo emparejar antes de la conexión y desvincularme después. La razón por la que necesito hacer esto es específica para mi solicitud y no en el alcance de mi pregunta.¿Cómo puedo evitar o descartar la notificación de sincronización de Bluetooth de Android cuando estoy haciendo un emparejamiento programático?
Básicamente lo que estoy haciendo es:
- obtener una referencia
ib
aIBluetooth
objeto como se describe en this answer - Registrar una BroadcastReceiver para
android.bluetooth.device.action.PAIRING_REQUEST
- llamada
ib.createBond(address)
- Espere BroadcastReceiver para desencadenar
- Convertir el pin de usuario en bytes con convertPinToBytes()
- llamada
ib.setPin(address, pinBytes)
desde dentro BroadcastReceiver
De todas formas, este enfoque funciona muy bien, excepto por el hecho de que cuando lo haga el emparejamiento, recibo una notificación en la barra de estado que solicita que el usuario introduzca un PIN para completar la emparejamiento. Pero esto de hecho es innecesario, porque para cuando el usuario vea esto, mi aplicación ya ha usado setPin()
. Realmente me gustaría que la notificación a) no aparezca en absoluto, ob) sea descartada automáticamente de alguna manera.
Me doy cuenta de que esto ni siquiera es posible, pero pensé que podría preguntar en caso de que alguien tenga una idea creativa.
¿Puede agregar algún código de muestra (o un enlace a su código fuente). Lo que quiero hacer es en realidad lo mismo que usted. Quiero conectarme a un dispositivo sin la solicitud de contraseña. Saludos cordiales, Jeroen – Jeroen
Desafortunadamente, no puedo compartir mi código fuente, pero el paso que paso arriba está muy cerca del código real. Puede comenzar con el código fuente en la respuesta a la que me enlace en el Paso 1. –
@JoelF ¿Ha resuelto su problema? Porque no soy. Realmente aprecio si puedes compartir cómo lo resuelves, si ese es el caso. – Tiago