O emparelhamento Bluetooth com o Nrf UART não está funcionando corretamente
O emparelhamento Bluetooth não está funcionando corretamente. Estou desenvolvendo o aplicativo com base no emparelhamento Bluetooth com o UART. Aqui incluí o meu conceito e o Programa. Ajude-me a resolver o problema.
Meu resultado esperado é Se o usuário pressionar o botão Conectar. Ele deve ser emparelhado sem a entrada do usuário e a tela de confirmação para solicitação de par e PIN. Finalmente, o dispositivo responde novamente ao Connected.
Meu resultado real é A tela de confirmação e o pop-up de entrada do usuário serão abertos. Depois que o dispositivo estiver emparelhado. Finalmente, o dispositivo não responde novamente a Estou conectado.
Estou preso nesse problema mais de 2 dias. Ajude-me a sair deste problema.
1. Registre o método PAIRING no método onstart ()
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);
this.registerReceiver(mPairingRequestReceiver, filter);
2. BroadcastReceiver para Receive the PairingRequest.
private BroadcastReceiver mPairingRequestReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
try {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
int pin = intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY", 123456);
//the pin in case you need to accept for an specific pin
byte[] pinBytes;
pinBytes = ("" + pin).getBytes("UTF-8");
device.setPin(pinBytes);
} catch (Exception e) {
Log.e(TAG, "Error occurs when trying to auto pair");
e.printStackTrace();
}
}
}
};
/ * Após a conexão dos dispositivos, estou criando o Bond * /
@Override
public void onDeviceConnected(BluetoothDevice device) {
device.createBond();
}