Pair and unpair - Bluetooth - Mercado Pago Developers

Pair and unpair

In this section, you’ll learn how to pair and unpair devices with a Point Smart by using a BluetoothDevicesPairing class.

Pair a device

Use the pairDevice feature from the BluetoothDevicesPairing class to pair a device with Point Smart by sending only the (address). The access is through the  MPManager object, as shown below.

          
val bluetoothPairing = MPManager.bluetooth.paring

bluetoothPairing.pairDevice(address) { response ->
   response.doIfSuccess { result ->
       // Manage pairing success
       val bondState = result.first
       val deviceModel = result.second
       // ... Perform additional actions if necessary 
   }.doIfError { error ->
       // Manage the error case if necessary
   }
}

        
          
final BluetoothDevicesPairing bluetoothPairing = MPManager.INSTANCE.getBluetooth().getParing();

final Function1<MPResponse<Pair<BluetoothBondState, BluetoothDeviceModel>>, Unit> callback =
   (final MPResponse<Pair<BluetoothBondState, BluetoothDeviceModel>> response) -> {
     if (response.getStatus() == ResponseStatus.SUCCESS) {
       final BluetoothBondState bondState = response.getData().getFirst();
       final BluetoothDeviceModel deviceModel = response.getData().getSecond();
       // Perform additional actions if necessary 
     } else {
       // Manage the error case if necessary
     }
     return Unit.INSTANCE;
   };

bluetoothPairing.pairDevice(address, callback);

        

Unpair a device

To unpair a device, use the unPairDevice feature from the BluetoothDevicesPairing class by accessing through the MPManager object. This feature uses the ((address)) of the selected device as a parameter, as shown below.

          
val bluetoothPairing = MPManager.bluetooth.paring

bluetoothPairing.unPairDevice(address) { response ->
   response.doIfSuccess { result ->
       // Manage pairing success
       val bondState = result.first
       val deviceModel = result.second
       // ... Perform additional actions if necessary
   }.doIfError { error ->
       // Manage the error case if necessary
   }
}

        
          
final BluetoothDevicesPairing bluetoothPairing = MPManager.INSTANCE.getBluetooth().getParing();

final Function1<MPResponse<Pair<BluetoothBondState, BluetoothDeviceModel>>, Unit> callback =
   (final MPResponse<Pair<BluetoothBondState, BluetoothDeviceModel>> response) -> {
     if (response.getStatus() == ResponseStatus.SUCCESS) {
       final BluetoothBondState bondState = response.getData().getFirst();
       final BluetoothDeviceModel deviceModel = response.getData().getSecond();
       // Perform additional actions if necessary
     } else {
       // Manage the error case if necessary
     }
     return Unit.INSTANCE;
   };

bluetoothPairing.unPairDevice(address, callback);

        

Description of the fields

FieldDescription
address (String)Location of the selected device, obtained through [BluetoothDeviceModel].
callback ((MPResponse<Pair<BluetoothBondState, BluetoothDeviceModel>>) -> Unit)Request response feature that provides the result of the pairing process. The [MPResponse] includes the status, the error (if any), and the details in case of success, which contain a (Pair) that comprises [BluetoothBondState] and [BluetoothDeviceModel].
NONE (BOND_NONE)Indicates that the device isn’t paired.
BONDING (BOND_BONDING)Indicates that the device is in pairing process.
BONDED (BOND_BONDED) Indicates that the device is paired.
id (String)Identificador del dispositivo.
boundState (Int)Estado de emparejamiento del dispositivo. Puede ser true o false.
name (String)Nombre del dispositivo ofrecido por el sistema operacional.
id (String)Dirección MAC del dispositivo.
isConnected (Boolean)Indica si el dispositivo está conectado.