Android ScanneCallback返回空蓝牙设备

Android ScanneCallback返回空蓝牙设备,android,bluetooth-lowenergy,Android,Bluetooth Lowenergy,这是我的扫描仪回调代码 private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { runOnUiThread(ne

这是我的扫描仪回调代码

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
对象。例如,它在我的家里或工作地点工作得非常好

但是,如果我把我的硬件+手机带到机场或万豪大酒店,它就会把事情搞砸,并返回一个空的
蓝牙设备

空设备意味着什么,我如何着手修复它

如有任何建议,将不胜感激

问候

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

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

空设备是什么意思

简单到找不到设备。但作为参考,我只是引用

您只能扫描蓝牙LE设备或经典设备 蓝牙设备,如蓝牙中所述。您不能同时扫描这两个 蓝牙技术可同时支持蓝牙和经典设备

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


如果有帮助,请告诉我

我有一个定制的硬件,里面有一个纯BLE芯片,它不能做经典。这是我在家/工作时使用的同一台设备,没有任何问题。扫描回调给了我一个空设备,这意味着如果我对它进行操作,我将收到空点异常。如果找不到设备,scanLeCallback不应该触发,为什么给我一个空设备?在开发人员指南中,他们甚至没有空检查,他们假设在该点找到的所有设备都不是空的。听起来很有趣。你能看看这个答案吗?他的问题看起来有点不同,因为他的蓝牙设备不是空的,只是设备的名称是空的。但是,我还没有查看AdvertisedData数组,我将在那里查看我能找到什么。然后再报告,假设是空的,你有什么建议?