Pareamento Bluetooth

Pareamento

  • Antes qualquer coisa você vai querer pedir permissão ao usuário para ativar o Bluetooth. Sem ele, não é possível conectar um dispositivo mPOS à aplicação.

  • Para realizar a busca de dispositivo Bluetooth, é necessário criar o objeto de descoberta mPOSDiscoveryRequestBuilder por meio da chamada MPOSPlugin.createDiscoveryRequestBuilder().

Exemplo de busca e pareamento
val request = MPOSPlugin.createDiscoveryRequestBuilder()
    .time(6L, TimeUnit.SECONDS)
    .callback(object: Callback<mPOSDiscoveryResponse>() {
        override fun onStart() {
            state = state.copy(
                status = Status.MESSAGE,
                message = "Buscando dispositivos"
            )
        }

        override fun onFail(error: Throwable) {
            Log.d(TAG, "Falha ao buscar dispositivos ${error.stackTraceToString()}")
            state = state.copy(
                status = Status.MESSAGE,
                message = "Falha ao buscar dispositivos"
            )
        }

        override fun onSuccess(response: mPOSDiscoveryResponse) {
            Log.d(TAG, "Dispositivos encontrados: ${response.available.items}")
            bluetoothDevice = response.available
            state = state.copy(
                status = Status.DISPLAY_BLUETOOTH_LIST,
                bluetoothDevices = response.available.items.toList()
            )
        }
    })
    .pairingCallback(object: Callback<PairingStatus>() {
        override fun onFail(error: Throwable) {
            Log.d(TAG, "Falha ao parear dispositivo")
            state = state.copy(
                status = Status.MESSAGE,
                message = "Falha ao parear dispositivo"
            )
        }

        override fun onSuccess(response: PairingStatus) {
            val message = if (response.status) {
                "Dispositivo pareado com sucesso"
            } else {
                "Falha ao parear dispositivo"
            }
            state = state.copy(
                status = Status.MESSAGE,
                message = message
            )
        }
    })
    .build()

Zoop.post(request)

Callbacks

.callback

Responsável por retornar as callbacks que dizem o estado do descobrimento de dispositivos Bluetooth.
onStart -> Sinaliza quando a busca por dispositivos inicia.
onFail -> Falha na busca por dispositivos.
onSuccess -> Sinaliza o momento que a busca por dispositivos termina com sucesso. É recebido um objeto UserSelection<BluetoothDevice> contendo um objeto iterable (acessado por response.items) a ser exibido pela aplicação para o usuário. A seleção do dispositivo para pareamento é feita com esse objeto. Cada item desse objeto é um dispositivo.

.pairingCallback

Responsável por retornar as callbacks que dizem o estado do pareamento de dispositivos Bluetooth.
onFail -> Falha ao parear o dispositivo.
onSuccess -> Sinaliza o momento que o pareamento termina com sucesso.