0

У меня проблема с отключением и подключением. Предположим, что у меня есть кнопка, которая позволяет отключить предыдущее устройство Bluetooth Low Energy и подключиться к новому устройству BLE. Обычно процесс разъединения занимает около 500 мс -> 1сек., Поэтому я должен сделать процесс задержки, который должен ждать завершения процесса разъединения. Затем я вызову новый процесс подключения. Это мой кодКак сделать задержку для процесса отключения и повторного подключения в BLE?

public void onClickButton(View v){ 
    //Disconnect previous 
    mBluetoothLeService.disconnect(); 
    //Need to wait here... 
    //Connect with new BLE 
    mBluetoothLeService.connect(mDeviceAddress); 
} 

Считаете ли вы, что Timer, Handler или Thread - лучший выбор в моем случае? Спасибо всем

Это мое решение с помощью таймера

  final ProgressDialog waitProgressDialog = ProgressDialog.show(this, "Please wait ...", "Disconnecting ...", true); 
      waitProgressDialog.setCancelable(true); 
      new CountDownTimer(500,100) { 
       public void onTick(long millisUntilFinished) { 
       } 
       public void onFinish() { 
        waitProgressDialog.dismiss(); 
       } 
      }.start(); 
+0

Таймер и обработчик хороши. попробуй – Shane

ответ

2

Кажется неправильным решением попытаться оценить время, так как это зависит от параметров подключения, сколько времени потребуется, чтобы отключить, так как устройство будет ждать подтверждение того, что периферийное устройство получило команду.

Вместо этого просто дождитесь обратного вызова onConnectionStateChange.