Программный перезапуск Bluetooth - PullRequest
0 голосов
/ 16 октября 2018

Как мне перезапустить Android Bluetooth программно и подождать, пока Bluetooth не включится, прежде чем выполнять другой метод.

Я хотел бы сделать следующее, но остановить выполнение другого кода, пока адаптер Bluetooth полностью перезапустится: Как программно включить / отключить Bluetooth в Android

1 Ответ

0 голосов
/ 16 октября 2018

Вам необходимо прослушивать состояния Bluetooth и работать соответственно

public class BluetoothRestarter {

private Context mContext;
private RestartListener mListener;
private BroadcastReceiver mReceiver;

public BluetoothRestarter(Context context) {
    mContext = context;
}

public void restart(RestartListener listener) {
    mListener = listener;
    if (mReceiver == null) {
        mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
                    final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                            BluetoothAdapter.ERROR);
                    switch (state) {
                        case BluetoothAdapter.STATE_OFF:
                            BluetoothAdapter.getDefaultAdapter().enable();
                            break;
                        case BluetoothAdapter.STATE_ON:
                            mListener.onRestartComplete();
                            break;
                    }
                }
                context.unregisterReceiver(this);
            }
        };
        mContext.registerReceiver(mReceiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
    }
}

public interface RestartListener {
    void onRestartComplete();
    }
}

Теперь вам просто нужно создать экземпляр этого класса с контекстом и вызвать метод перезапуска с RestartListener.Вы получите обратный звонок.

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