0

我有一個斷開連接過程的問題。假設我有一個按鈕,可以斷開以前的藍牙低功耗設備並連接到新的BLE設備。通常,斷開過程大約需要500毫秒 - > 1秒,因此,我必須進行延遲過程,目的是等待斷開過程完成。然後我會調用新的連接過程。這是我的代碼如何延遲BLE中的斷開和重新連接過程?

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

你覺得定時器,處理程序,或線程是最好的選擇在我的情況?感謝所有

這是我的解決方案使用計時器

  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回調。

相關問題