Получение информации о текущем состоянии значения Brodcast без получения сообщения - PullRequest
0 голосов
/ 20 мая 2019

Мне удалось получить информацию об изменении статуса, но как я могу просто проверить текущий статус?

Например:

Когда адаптер bluetooth изменяет информацию о подключении, я могуобновить пользовательский интерфейс, но когда я запускаю приложение и хочу показать текущее состояние (которое не изменилось, поэтому я не получил сообщение), оно не работает ... Некоторые идеи?

BroadcastReceiver cBT_receive = new BroadcastReceiver() {
      @Override
      public void onReceive(Context context, Intent intent) {
          int iBT_adapter_state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, mBluetoothAdapter.ERROR);
          int iBT_connection_state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE, mBluetoothAdapter.ERROR);
          ImageView Warning_image = findViewById(R.id.Status_Image);

          if(mBluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction()))
          {

              switch (iBT_adapter_state)
              {
                  case BluetoothAdapter.STATE_TURNING_ON:
                      Toast.makeText(context, "Bluetooth is turning on",Toast.LENGTH_SHORT).show();
                      Warning_image.setImageResource(R.mipmap.bt_foreground_yellow);
                      break;

                  case BluetoothAdapter.STATE_ON:
                       Toast.makeText(context, "Bluetooth is on",Toast.LENGTH_SHORT).show();

                      break;
              }
          }
          if (mBluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction()))

              switch (iBT_connection_state)
              {
                  case BluetoothAdapter.STATE_CONNECTED:
                      Toast.makeText(context, "Bluetooth is connected",Toast.LENGTH_SHORT).show();
                      Warning_image.setImageResource(R.mipmap.bt_foreground_green);
                      break;

                  case BluetoothAdapter.STATE_DISCONNECTED:
                      Toast.makeText(context, "Bluetooth is disconnected",Toast.LENGTH_SHORT).show();
                      Warning_image.setImageResource(R.mipmap.bt_foreground_red);
              }

      }
  };

Приведенный выше код дает информацию о том, когда статус изменился, но не о текущем статусе.

1 Ответ

0 голосов
/ 20 мая 2019

Я понял:

if(mBluetoothAdapter.isEnabled())
{
    int icurrent_BT_state = mBluetoothAdapter.getState();

    switch (icurrent_BT_state)
    {
        case BluetoothAdapter.STATE_ON:
            Toast.makeText(context, "Bluetooth is already on", Toast.LENGTH_SHORT).show();
            break;

        case BluetoothAdapter.STATE_CONNECTED:
            Toast.makeText(context, "Bluetooth is already connected", Toast.LENGTH_SHORT).show();
            break;
    }
}

Решение: getState ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...