【问题标题】:Android scanLeCallback returns Null BluetoothDeviceAndroid scanLeCallback 返回 Null BluetoothDevice
【发布时间】:2016-08-28 04:59:01
【问题描述】:

这是我的扫描仪回调代码。

private BluetoothAdapter.LeScanCallback mLeScanCallback =
    new BluetoothAdapter.LeScanCallback() {
        @Override
        public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (device == null) {
                        return;
                    }
                    if (!device.getName().startsWith("DEVICE_NAME")) {
                        System.out.println("Did not start with DEVICE_NAME, removing: " + device.getName());
                        return;
                    }
                    if (!devices.contains(device)) {
                        System.out.println("Valid DEVICE_NAME Adding: " + device.getName());
                        devices.add(device);
                    }
                }
            });
        }
    };

当我在某些地理位置进行扫描时,我得到一个空的 BluetoothDevice 对象。例如,它在我的家中或工作地点工作得非常好。

但是,如果我将我的硬件 + 电话带到机场或大型万豪酒店,那么它会搞砸并返回一个 null BluetoothDevice

空设备是什么意思,我该如何解决这个问题?

任何建议将不胜感激。

问候

【问题讨论】:

    标签: android bluetooth-lowenergy


    【解决方案1】:

    当我在内部扫描时,我得到一个空的 BluetoothDevice 对象 某些地理位置。

    如果您周围有相同的 BLE 设备,则不应发生这种情况。在您的工作地点或家中,确保周围的 BLE 设备相同以用于测试目的。

    空设备是什么意思

    简单,因为没有找到设备。但作为参考,我只是引用developers guide

    您只能扫描蓝牙 LE 设备或扫描 Classic 蓝牙设备,如蓝牙中所述。您不能同时扫描两者 同时使用蓝牙 LE 和经典设备。

    我想在这里分享一些我的经验。当您扫描附近的设备时,需要发现某些蓝牙设备。你也需要记住这一点。

    如果有帮助,请告诉我!

    【讨论】:

    • 我有定制的硬件,里面有一个纯 BLE 芯片,它不能做经典。这是我在家里/工作中使用的相同设备,没有任何问题。扫描回调给了我一个空设备,这意味着如果我要对其进行操作,我会收到空​​点异常。如果没有找到设备,scanLeCallback 甚至不应该触发,为什么给我一个空设备?在开发人员指南中,他们甚至没有检查是否为空,他们假设在该点找到的所有设备都不为空。
    • 听起来很有趣。你能看看这个答案吗? stackoverflow.com/a/26361694/3145960
    • 他的问题看起来有点不同,因为他的 BluetoothDevice 不为空,只是设备的名称为空。但是,我还没有查看 AdvertisedData 数组,我会去那里看看我能找到什么。回来报告,但假设它是空的,你有什么建议?
    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 2015-01-31
    • 2012-06-22
    • 2012-05-28
    • 2014-12-05
    • 2021-07-07
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多