BLE设备名称不可恢复



我有一个项目,正在扫描运行在BLE上的信标。

我可以扫描信标并将它们列在一个很好的自定义ListView中。然而,检索他们的名字似乎不起作用。

在我的OnLeScan回调中,我使用device.getName(),这似乎总是返回null?

此外,当我试图解析ScanRecord byte[]数组的数据与这篇文章一致-我仍然没有太多的运气。有什么想法/建议?

我应该从BluetoothDevice类检索本地名称吗?我应该从解析ScanRecord/ScanResult类中检索它吗?

我的onLeScan是这样的:

public void onLeScan(final BluetoothDevice device, int rssi, final byte[] scanRecord) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Log.v(device.getName(),device.getName());
                            mLeDeviceListAdapter.addDevice(device);
                            mLeDeviceListAdapter.notifyDataSetChanged();
                        }

                    }
                });
            }
编辑:

我尝试对链接帖子中的代码进行一些修改。根据评论中的建议,添加一个case 0x08:。然而,我的ListView仍然将所有找到的设备列为"未知设备"。默认情况下,将不检索友好名称。

查看iBeacon广告数据包的详细信息。没有名字

官方规格只能通过苹果的MFi程序获得。

最新更新