我正在开发一款扫描设备的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();
}
答案 0 :(得分:0)
最后它在AOSP Lollipop中运行良好。本课题已经结束