android - BLE 设备名称无法恢复

标签 android arrays bluetooth-lowenergy android-bluetooth

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

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

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

此外,当我尝试解析 ScanRecord byte[] 数组以获取符合 this 的数据时发布-我仍然没有太多运气。有什么想法/提示吗?

我应该从 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 仍然默认将所有找到的设备列为“未知设备”,并且不会检索友好名称。

最佳答案

参见 this answer用于分解 iBeacon 广告数据包。没有名字。

官方规范只能通过 Apple 的 MFi 程序获得。

关于android - BLE 设备名称无法恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30645684/

相关文章:

android - 如何让其他应用程序知道要查找的 CONTENT_URI?

java - Android 中的 Base64 加密

c - 队列数据结构实现

javascript - 将缺失值添加到分组数据中

swift - 如何使用 gzip 将从蓝牙低功耗设备获取的压缩 .gz 文件转换为 Swift 4.2 中的实际解压缩文件?

android - 工具栏默认样式和导航图标

javascript - 适用于 Android 的 PhoneGap 相机 API - 未捕获的异常

java - 如何将大整数转换为字节

android - 蓝牙 LE 连接时间/缓存

notifications - Android Ble 延迟通知