代码之家  ›  专栏  ›  技术社区  ›  Darren

以编程方式重新启动蓝牙

  •  0
  • Darren  · 技术社区  · 6 年前

    我想执行以下操作,但在蓝牙适配器完全重新启动之前停止执行其他代码: How to enable/disable bluetooth programmatically in android

    1 回复  |  直到 6 年前
        1
  •  2
  •   Sujith Niraikulathan    6 年前

    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();
        }
    }