【问题标题】:display Livedata using startLeScan()使用 startLeScan() 显示 Livedata
【发布时间】: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


    【解决方案1】:

    最后它在 AOSP Lollipop 中运行良好。此问题已结束

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多