2013-03-26 1246 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