¿El emparejamiento Bluetooth OOB es realmente compatible con Android?

Soy un novato en el mundo de Android. Perdóname si mi pregunta es demasiado ingenua.

He estado trabajando en una aplicación de muestra para realizar el emparejamiento Bluetooth entre una Linux Box (FC-21 con Bluez-5.42) y una tableta Android. Estoy usando NFC para transferir el nombre de Bluetooth, la dirección y los datos OOB de la PC a Android. Puedo enviar los datos anteriores desde la PC a Android a través de NFC (haz para ser precisos) y puedo analizar y decodificar todos los datos en el lado de Android. Con la dirección Bluetooth de Linux box disponible en Android, puedo llamar a CreateBond () para emparejar la tableta Android con Linux Box. He probado esta parte y funciona como se esperaba.

Ahora, el problema con este método es que, durante el emparejamiento de Bluetooth, se usa la comparación numérica o el modelo de asociación de entrada de clave de acceso, lo que creo que es una aberración para la experiencia del usuario cuando está usando NFC para hacer el emparejamiento. Como ya tengo los datos OOB de la PC, me gustaría utilizar la asociación OOB para el emparejamiento de modo que la experiencia del usuario no se vea comprometida.

Para hacer esto, cuando reemplazo CreateBond () con CreateBondOutOfBand () [usando la reflexión], no se envía ninguna solicitud de emparejamiento desde Android a la PC con Linux.

       try {
        showLog("Pairing started");
        Method m = bDev.getClass().getMethod("createBondOutOfBand", byte[].class, byte[].class);
        showLog("Found method");
        Boolean flag = (Boolean) m.invoke(bDev, Hash, Rand,(Object[]) null);
        //Method m = bDev.getClass().getMethod("createBond", (Class[]) null);
        //Boolean flag = (Boolean) m.invoke(bDev, (Object[]) null);
        if(flag)
            showLog("Pairing successfully finished.");
        else
            showLog("Pairing failed");
    } catch (Exception e) {
        showLog("Pairing failed.");
    }

Busqué en línea pero no pude encontrar ninguna evidencia concreta de que el emparejamiento OOB se pueda implementar en Android.

Además, para verificar el comportamiento de Android nativo, creé una etiqueta NFC con el nombre de Bluetooth, la dirección y los datos OOB de la caja de Linux. Cuando sostuve la etiqueta contra la tableta Android, se inició el emparejamiento de Bluettoth, pero todavía no estaba usando el modelo de asociación OOB.

Mis preguntas son las siguientes,

¿El modelo de asociación OOB es realmente compatible con Android?Si el modelo de asociación OOB es compatible, ¿CreateBondOutOfBand () es la API que se utilizará o hay alguna otra API que deba usar?

Cualquier aportación sería muy apreciada.

Gracias,

Sai

Respuestas a la pregunta(2)

Su respuesta a la pregunta