BLE设备名称无法恢复

时间:2015-06-04 13:52:36

标签: android bytearray bluetooth-lowenergy android-bluetooth

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

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

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

此外,当我尝试按照this帖子解析数据的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();
                        }


                    }
                });
            }

编辑:

我尝试对链接帖子中的代码进行一些修改。添加案例0x08:如评论中所建议的那样。但是,我的ListView仍默认将所有找到的设备列为“未知设备”,并且不会检索友好名称。

1 个答案:

答案 0 :(得分:1)

有关iBeacon广告包的细分,请参阅this answer。没有名字。

官方规格只能通过Apple的MFi计划获得。