【发布时间】:2015-07-10 19:42:22
【问题描述】:
正在开发一个扫描 ble 设备的 android 应用程序。我成功地扫描了它们并显示了扫描的响应数据包。现在我已经修改了 ble 以传输扫描的数据包,这些数据包将随每个广告事件发生变化。所以我需要在我的应用程序中显示数据的实时变化。但是一旦按下扫描它就会显示立即值,它不会更新下一个数据!我正在使用mBluetoothAdapter.startLeScan(mLeScanCallback) 函数。
所以我需要快速启动和停止扫描以显示新数据。我尝试使用多次启动和停止 leScan 但它挂断了应用程序。
这是扫描的通用函数
private void scanLeDevice(final boolean enable) {
if (enable) {
// Stops scanning after a pre-defined scan period.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mScanning = false;
mBluetoothAdapter.stopLeScan(mLeScanCallback);
System.out.println("hello");
invalidateOptionsMenu();
}
}, SCAN_PERIOD);
mScanning = true;
mBluetoothAdapter.startLeScan(mLeScanCallback);
} else {
mScanning = false;
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
invalidateOptionsMenu();
}
【问题讨论】:
标签: android