有没有办法扫描不使用回调的BLE设备?

时间:2018-05-24 15:49:03

标签: android bluetooth bluetooth-lowenergy android-bluetooth

我正在Android中开发一个应用程序,仅使用Android的API扫描附近的蓝牙低功耗设备。有任何功能可以扫描并返回所有检测到的设备的列表吗?目前我正在使用回调,但我需要每秒调用此函数更多次,因此回调不是这样。

2 个答案:

答案 0 :(得分:0)

不,我不认为没有像我所知的那样使用回调函数。

回调是扫描过程的重要部分。

这是创建回调的代码

private ScanCallback leScanCallback = new ScanCallback() {
        @Override
        public void onScanResult(int callbackType, ScanResult result) {
          //code for what you want to do when a device is found
        }
    };

ScanResult是一种数据结构,它保存有关设备及其拥有的服务数据的信息。

这是开始扫描

AsyncTask.execute(new Runnable() {
            @Override
            public void run() {
                btScanner.startScan(leScanCallback);
            }
        });

这是停止扫描

AsyncTask.execute(new Runnable() {
            @Override
            public void run() {
                btScanner.stopScan(leScanCallback);
            }
        });

答案 1 :(得分:0)

不,蓝牙LE扫描自然是一个需要回调的异步过程。此外,呼叫每秒扫描更多次,不会提高您获得更多结果的机会。蓝牙LE扫描过程持续运行并返回所有可能的结果。