Я пытаюсь установить связь BLE между устройством TI и моим приложением. На данный момент, не включив сопряжение, все работает хорошо, как только сопряжение включено, у меня возникают проблемы.
1) Мое приложение запрашивает у меня пар.
2) Войти с паролем
3) приложение не работает
4) Я покидаю приложение, возвращаюсь и все работает
5) Я повторно выхожу из приложения, повторный вход не работает и требует сопряжения
Как я могу устранить эти ошибки?
Я использую это в MainActivity:
private void getpaireddevices(){
Set<BluetoothDevice> devicesArray = BluetoothAdapter.getDefaultAdapter().getBondedDevices();
if(devicesArray.size() > 0) {
for(BluetoothDevice device : devicesArray) {
device.getName();
device.getAddress();
}
}
}
И это в SelectedDevice:
private final BroadcastReceiver mBroadcastReceiver4 = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int state = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, -1);
int prevstate = intent.getIntExtra(BluetoothDevice.EXTRA_PREVIOUS_BOND_STATE, -1);
String msg = "Bond state change: state" + pairstate(state) + "previous state" + pairstate(prevstate);
Log.w("Bond state receiver", msg);
}
private String pairstate(int state) {
switch (state) {
case BluetoothDevice.BOND_BONDING:
Log.i("Bondind status:", "Bonding..");
break;
case BluetoothDevice.BOND_BONDED:
Log.i("Bondind status:", "Bonded");
break;
case BluetoothDevice.BOND_NONE:
Log.i("Bondind status:", "Fail");
default:
return String.valueOf(state);
}
return null;
}
};
В основной операции, когда я сканирую устройства, я вызываю createBond ()
, а в SelectedDevice я вызываю регистр mBroadcastReceiver4
.