Обнаружение изменений состояния, внесенных в адаптер Bluetooth?

У меня есть приложение с кнопкой, которую я использую для включения и выключения BT. У меня есть следующий код;

public void buttonFlip(View view) {
    flipBT();
    buttonText(view);
}

public void buttonText(View view) {  
    Button buttonText = (Button) findViewById(R.id.button1);
    if (mBluetoothAdapter.isEnabled() || (mBluetoothAdapter.a)) {
        buttonText.setText(R.string.bluetooth_on);  
    } else {
        buttonText.setText(R.string.bluetooth_off);
    }
}

private void flipBT() {
    if (mBluetoothAdapter.isEnabled()) {
        mBluetoothAdapter.disable();    
    } else {
        mBluetoothAdapter.enable();
    }
}

Я вызываю кнопку Flip, которая переворачивает состояние BT, а затем вызывает ButtonText, которая должна обновить пользовательский интерфейс. Однако проблема, с которой я сталкиваюсь, заключается в том, что для включения BT требуется несколько секунд, и в течение этих секунд статус BT не включен, поэтому моя кнопка говорит, что Bluetooth выключен, даже если он будет включен через 2 секунды.

Я нашел константу STATE_CONNECTINGв документации BluetoothAdapter для Android, но... я просто не знаю, как ее использовать, будучи новичком и все такое.

Итак, у меня два вопроса:

  1. Есть ли способ динамически привязать элемент пользовательского интерфейса (например, кнопку или изображение) к состоянию BT, чтобы при изменении состояния BT кнопка менялась? также?
  2. В противном случае я хотел бы нажать кнопку и получить правильное состояние (я хотел бы, чтобы она говорила, что BT включен, даже если он только подключается, так как он будет включен через 2 секунды). Как мне это сделать?
67
задан Alex Lockwood 24 June 2012 в 00:04
поделиться