2013-03-26 123 views
1

我希望能夠在我的手中使用Android設備在房間內走動,單擊指示房間1的按鈕,然後開始發現身邊的藍牙設備並獲取其RSSI值。然後我想將這些信息保存爲一個文本文件。然後重複不同的房間。實時測量藍牙信號強度(RSSI)

這是很容易的部分。

我在與被找出如何(或者如果可能的話)要做到這一點,但有麻煩的部分定時器設定,以便發現過程並不一定完成本身,而是這樣我就可以時間它開始並停止發現本身重複獲得新的值,直到我pess完成。大多數接近USUALLY的值都出現在大約5秒左右的時間內,對於我目前正在嘗試做的事情,我很滿意。 我發現this的問題,但沒有答案。

爲了使它更清楚一點簡單的例子是:

  • 按「房間1」按鈕
  • 開始發現
  • 5秒後,停止發現並重新開始
  • 在執行此操作直到...
  • 按下「停止」按鈕

有誰知道這是否可能?如果是的話,那麼最好的方法是什麼? 我看了一下Timer和TimerTask,它們看起來很有用。

此外,在我開始深入研究之前,我已經提出了一些要求,因爲在n必須恢復到開始之前,我已經這麼做了。 :(

感謝

+0

你如何目前芬蘭的發現呢?BluetoothChat EXA許多人建議發現無限期地運行,無論如何您需要實現超時。你可以用一個線程或一個處理程序來做到這一點。 – Toast 2013-03-26 23:31:51

回答

2

你可以使用這樣的事情:

private void start() { 
    mBluetoothAdapter.startDiscovery(); 
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      if (mBluetoothAdapter.isDiscovering()) 
       mBluetoothAdapter.cancelDiscovery(); 
      if (repeat) start();     
     } }, 5000); 
} 

使由停止按鈕設置爲false變量重複啓動按鈕設置重複爲真,並呼籲啓動( )。

據我所知藍牙發現無限期運行,所以你並不需要停止和重新啓動它。

+0

對不起。這很有魅力。但是,我需要停止並開始發現,因爲我需要記錄每次掃描中發現的值。謝謝! – 2013-04-20 21:09:11